Tag: mongodb

需要一个无法找到Spring类型的bean

Spring Boot应用程序无法启动? 这是我的项目结构 以下是我的主要课程。 package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Start { public static void main(String[] args) { SpringApplication.run(Start.class, args); } } 我的控制台是 2017-11-28 11:48:52.187 WARN 7316 — [ main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization – cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘userController’: Unsatisfied dependency expressed through […]

如何在远程服务器上运行mongo db脚本?

如何在远程服务器上运行Mongo db脚本? 我知道下面的命令可以用于本地提到的相同内容: 如何通过shell脚本执行mongo命令? mongo < yourFile.js 我想在远程服务器上运行此脚本 mongodb的:URI:mongodb的://用户:password@mongodb01d.mydomain.com:27017 / MYDB

如何配置两个实例mongodb使用spring boot和spring数据

第一个实例是嵌入式MongoDb,第二个实例是实时MongoDb。 它如何配置使用弹簧数据和弹簧启动。 如何通过属性文件轻松切换这些实例? UPDATE 默认情况下,应用程序应启动内置数据库并将数据存储到APPDIR / db目录中 应该可以通过配置mongo.url属性让应用程序知道将使用外部数据库。 在这种情况下,无需启动内部数据库。 而不应该使用外部连接 请粘贴一些配置。 更新我有: de.flapdoodle.embed de.flapdoodle.embed.mongo 1.50.5 spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.uri=mongodb://localhost/test spring.data.mongodb.database=test # EMBEDDED MONGODB (EmbeddedMongoProperties) #spring.mongodb.embedded.storage.databaseDir=c:/db #spring.mongodb.embedded.version=3.2.2 如果我将指定外部mongodb,那么我希望嵌入式mongodb不应该启动。 java.io.IOException: Could not start process: at de.flapdoodle.embed.mongo.AbstractMongoProcess.onAfterProcessStart(AbstractMongoProcess.java:79) ~[de.flapdoodle.embed.mongo-1.50.5.jar!/:?] at de.flapdoodle.embed.process.runtime.AbstractProcess.(AbstractProcess.java:114) [de.flapdoodle.embed.process-1.50.2.jar!/:?] at de.flapdoodle.embed.mongo.AbstractMongoProcess.(AbstractMongoProcess.java:53) [de.flapdoodle.embed.mongo-1.50.5.jar!/:?] at de.flapdoodle.embed.mongo.MongodProcess.(MongodProcess.java:50) [de.flapdoodle.embed.mongo-1.50.5.jar!/:?] at de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:44) [de.flapdoodle.embed.mongo-1.50.5.jar!/:?] at de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:34) [de.flapdoodle.embed.mongo-1.50.5.jar!/:?] at de.flapdoodle.embed.process.runtime.Executable.start(Executable.java:101) [de.flapdoodle.embed.process-1.50.2.jar!/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) […]

如何将最终字段添加到现有的spring-data-mongodb文档集合中?

我有一个使用spring-data-mongodb版本1.0.2.RELEASE的现有文档集合。 @Document public class Snapshot { @Id private final long id; private final String description; private final boolean active; @PersistenceConstructor public Snapshot(long id, String description, boolean active) { this.id = id; this.description = description; this.active = active; } } 我正在尝试添加一个新属性private final boolean billable; 。 由于属性是final因此需要在构造函数中设置它们。 如果我将新属性添加到构造函数,则应用程序将无法再读取现有文档。 org.springframework.data.mapping.model.MappingInstantiationException: Could not instantiate bean class [com.some.package.Snapshot]: Illegal arguments […]

mongoDB:数组中不存在的文档的$ inc

我无法编写代码,这将能够增加数组中不存在的值。 让我们考虑mongo集合中的以下结构。 (这不是我们使用的实际结构,但它维持了这个问题) { “_id” : ObjectId(“527400e43ca8e0f79c2ce52c”), “content” : “Blotted Science”, “tags_with_ratings” : [ { “ratings” : { “0” : 6154, “1” : 4974 }, “tag_name” : “math_core” }, { “ratings” : { “0” : 154, “1” : 474, }, “tag_name” : “progressive_metal” } ] } 示例问题:我们希望将此文档添加到tags_with_ratings属性中,增加标记的评级,该标记尚未添加到数组中。 例如,我们希望为tag_name“dubstep”增加“0”值。 所以预期的行为是,mongo将这样的文档插入到“tags_with_ratings”属性中: { “ratings” : { “0” : […]

安装play框架mongodb morphia模块

我正在使用具有mongodb作为后端的播放框架进行应用程序开发,我已经在我的ubuntu以及windows上成功安装了mongodb和playframework,但是如果我想使用mongodb我需要使用morphia模块的play框架,我已经下载了morphia模块并尝试安装,但它给我一个这样的错误, root@ubuntu:~/apps/tmp1# play install morphia [info] Loading project definition from /root/apps/tmp1/project [info] Set current project to tmp1 (in build file:/root/apps/tmp1/) [error] Not a valid command: install (similar: initialize, inspect, shell) [error] Not a valid project ID: install [error] Not a valid configuration: install (similar: optional) [error] Not a valid key: install (similar: initialize, dist, stage) […]

限制Result中的字段

我正在使用MongoDB v3.0.1和MongoDB Java Driver 3.0.0-RC1。 我有一个用户集合,其中包含“username”,“firstname”,“lastname”,“email”等字段。 现在我想选择所有用户,但只选择“username”,“firstname”和“lastname”字段。 在Mongo-Shell上,它使用db.user.find({}, { “username” : true , “firstname” : true , “lastname” : true}) 但是我怎么能用Java做呢? 我尝试了final BasicDBObject query = new BasicDBObject(“{}”, new BasicDBObject(“_id”, true)); final MongoCursor usersCursor = col.find(query) final BasicDBObject query = new BasicDBObject(“{}”, new BasicDBObject(“_id”, true)); final MongoCursor usersCursor = col.find(query) 为此,我得到一个空结果,因为它被翻译为{ “{}” : { “_id” : […]

MongoTemplate聚合 – 按日期分组

我正在尝试使用mongotemplate创建聚合查询,其中按日期(即2016-03-01)而不是datetime(即2016-03-01 16:40:12)进行分组。 dateToString操作存在于mongodb文档中,它可用于使用格式化从日期时间中提取日期: https : //docs.mongodb.org/manual/reference/operator/aggregation/dateToString/但我得到了它可以使用它mongotemplate – 我得到一个NullPointerException。 (我的db版本是3.2) List aggregationOperations = new ArrayList(); aggregationOperations.add( Aggregation.project(“blabla”, …). andExpression(“dateToString(‘%Y-%m-%d’,timeCreated).as(“date”)); aggregationOperations.add(Aggregation.group(“date”).sum(“blabla”).as(“blabla”)); AggregationResults aggregationResults = this.mongoTemplate.aggregate( Aggregation.newAggregation(aggregationOperations), collectionName, resultClass); 当我使用dayOfMonth(timeCreated)来提取日期时,没有例外,但是我找不到如何使用dateToString进行此操作的示例。 我尝试没有”作为日期格式,它也没有工作…… 这是我得到的例外: java.lang.NullPointerException at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:226) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194) at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194) at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194) at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255) at org.bson.BasicBSONEncoder.putIterable(BasicBSONEncoder.java:324) at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:263) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:136) at com.mongodb.DefaultDBEncoder.writeObject(DefaultDBEncoder.java:36) at […]

Java:如何将一个hashmap插入MongoDB?

我有一个hashmap,我试图插入到MongoDB(版本3.6)。 我知道insertMany()方法 – 它只接受文档列表。 我无法创建列表,因为我的数据中有重复项,我想摆脱它们。 这就是我创建hashmap的原因。 有什么方法可以将hashmap插入Mongodb吗? 我找到了一个链接https://www.mkyong.com/mongodb/java-mongodb-insert-a-document/ ,其中显示了如何将地图插入Mongodb collection.insert(new BasicDBObject(documentMap)); 但是在新的mongoDB中不推荐使用BasicDBObject。 我的hashmap看起来像这样: -1322771423 [ecn, KeywordMatch, http://insidedell.com/ecn, ECN] -2144339676 [product marketing, PhraseMatch, http://dellemc.com/product, Products] -214203024 [jive, ExactMatch, http://test.com/jive, Jive test] -493382214 [search, ExactMatch, http://example.com, Search Consultancy] 基本上我希望我的MongoDB集合看起来像这样: new_collection { _id: -493382214 query: ExactMatch, link: http://example.com, content: Search Consultancy } { _id: … } 编辑: 我的问题的背景 […]

使用MongoDB计算Java中的距离

我正在研究Java和MongoDB中的位置计算。 我将纬度和经度传递给方法并从提供的输入中找到最近的位置。 我可以从我的主表中获取位置名称,其中包含纬度和经度的所有地标。 我的要求是我希望使用MongoDB获得距离的位置 – 例如来自XYZ的4Km。 MongoDB有地理空间查询,我正在研究它。 我可以通过使用db.runCommand({geoNear:“data”,near:[ – 73.9000,40.7000],spherical:true,maxDistance:2500/6378137,distanceMultiplier:6378137})在命令提示符下运行来获得提及的输入。 我正在寻找Java中的等效代码,所以我只能通过纬度和经度并获得距离最近的位置。 提前致谢。