Tag: mongodb

使用部分定义的模式映射文档

我正在使用Spring和MongoDB作为数据库编写演示应用程序。 我的主要域类看起来像: @Document public class Person { @Id private String id; //Some other fields private DBObject additionalData; } 关键是additionalData是一个没有指定模式的子文档,它是一种用户定义的JSON。 但是当我解析这个json(使用(DBObject)JSON.parse(value)表达式)时,它在MongoDB中存储为一个字符串,我需要它是一个嵌套的文档结构。 搜索了几个小时,没有找到解决方案。 有任何想法吗?

得到“错误”:“使用Java驱动程序插入mongo时出现E11000重复键错误

线程“main”中的exceptioncom.mongodb.MongoException $ DuplicateKey:{“serverUsed”:“localhost / 127.0.0.1:27017”,“err”:“E11000重复键错误索引:twitterdb03.LevelAFollowers。$ id dup key:{ :ObjectId(’52d5636de408652b4853a8fe’)}“,”code“:11000,”n“:0,”connectionId“:12,”ok“:1.0} 我正在使用mongo 2.11.1 在java中从未遇到过简单的写操作问题 myMap.put(inid, followersList); myObj.putAll(myMap); myIdMapCollection.insert(myObj);

如何使用spring数据在mongo中运行js文件

在mongo shell中,可以使用load命令运行js文件: load(“path/to/file/file.js”) 如何使用spring-data做到这一点? 或者Java中的任何其他方式。 我试过了: BasicDBObject obj = new BasicDBObject(); obj.append( “$load” , “/path/file.js” ); CommandResult t=mongoTemplate.executeCommand(obj); 和: obj.append( “$eval” , “load(\”/path/file.js\”)” ); 但它不起作用。

使用Java连接到MongoDB服务器实例期间的身份validation

有可能做出类似的东西: MongoClient mongo = new MongoClient(ip, port, usrName, password) 在JAVA中类似于MongoVUE或其他基于SQL的数据库的身份validation方法。 在连接到数据库实例期间完成身份validation。 我在MongoClient java doc中没有看到合适的实例方法 身份validation方式(可选)官方文档 不符合我的目标,因为它需要更改我的应用程序中现在不使用身份validation的所有现有查询方法。 使用Java驱动程序对MongoDB进行身份validation的方式看起来正是我所需要的,但mongo 2.10.1发行版中没有com.mongodb.MongoCredential类。

用Jackson以两种不同的方式序列化一个class级

在我们的一个项目中,我们使用java webapp与MongoDB实例进行通信。 在数据库中,我们使用DBRefs来跟踪一些对象关系。 我们使用jackson(使用mongodb-jackson-mapper)使用POJO对象进行序列化。 但是,我们使用相同的POJO然后(de)序列化到外部世界,我们的前端处理呈现JSON。 现在,我们需要一种外部世界的序列化方法来包含来自DBRef的引用对象(以便UI可以呈现完整对象),而我们显然希望将DBRef写入数据库,而不是整个宾语。 现在我写了一些未经测试的静态嵌套类代码: public static class FooReference { public DBRef foo; // FIXME how to ensure that this doesn’t go into the database? public Foo getFoo() { return foo.fetch(); } } 理想情况下,我想要一种方法来注释这个,以便我可以(或)使用或不使用getFoo()结果序列化它,可能取决于某些配置对象。 这可能吗? 你有没有看到更好的方法来做这件事?

morphia将一个字段名“ClassName”插入到mongodb中

我对mongodb和morphia很新,在开始使用之后,我意识到mongodb文档中有一个额外的部分,该记录包含一个字段名“ClassName”,其值为morphia映射的类。 { “_id” : ObjectId(“51e7a85e300441e5885316c0”), “className” : “models.User”, “imgurl” : “”, “uname” : “alex”} 这是正常的吗? 我觉得它违反了数据库中数据的完整性,无论如何都要绕过它吗?

Spring数据mongodb搜索ISO日期

我正在尝试使用查询搜索出生日期 criteria = Criteria.where(“dob”).lte(new DateTime().toDate()); 并且spring数据mongodb生成以下查询: MongoTemplate:使用查询查找: { “dob” : { “$lte” : { “$date” : “2015-05-16T07:55:23.257Z”}}} fields:类为null:类com.temp.model.User in collection:user 但我没有得到任何结果。 我在mongodb的dob字段: {“dob” : ISODate(“1991-01-23T00:00:00Z”)} 我如何以ISODate格式搜索dob ?

MongoDB Java驱动程序:与sort不同

使用MongoDB控制台,我可以使用不同的密钥编写本机MongoDB查询,其类似于: db.mycollection.distinct(‘mykey’).sort(‘mykey’, 1) 使用Java驱动程序,我希望能够像这样编写相同的查询: myCollection.distinct(“myKey”).sort(new BasicDBObject(“myKey”, 1)); 但是,这不起作用,因为DBCollection#distinct()返回类型List而不是类型DBCursor如DBCollection#find() 。 如何使用Java驱动程序编写带有排序的不同查询?

如何从java执行mongo admin命令

我想用java中的参数执行soem admin命令。 命令是: { enablesharding : “test” } { shardcollection : “test.test_collection”, key : {“number”:1} } 我怎么能用java驱动程序呢? 以下代码不起作用: mongo.getDb(“admin”).command(“{shardcollection : \”test.test_collection\”, key:\”number\”:1} }”)

mongodb的JDBC驱动程序类名是什么?

就像mysql一样com.mysql.jdbc.Driver , mongodb的JDBC driver类是什么? 在java代码中,它可以获得为 MongoClient mongoClient = new MongoClient(“localhost”); 但在JMeter的情况下,它需要JDBC驱动程序类名。