Tag: mongodb

Spring Boot Data和MongoDB – 过滤子文档数组查询

我试图使用Spring来查询Mongo存储库并过滤数组子文档。 我已经引用了如何使用mongodb过滤子文档中的数组 ,但是想知道是否有更合适的或java结构化的方法来使用Spring。 我目前正在使用速记存储库接口表示法,但我正在使用未过滤的数组返回完整的文档。 PersonRepository.java @Repository public interface PersonRepository extends MongoRepository { List findByAddressZipCode(@Param(“zip”) int zip); } Person.java @Document public class Person { @Id private String id; private String firstName; private String lastName; private List address; } Address.java public class Address { private int zip; } 样本输入 { “firstName”:”George”, “lastName”:”Washington”, “address”:[{ “zip”:”12345″ },{ “zip”:”98765″ },{ […]

如何在带有spring数据mongodb的java中使用$ lookup阶段?

直到最后一个版本的spring我已经看到很多堆栈溢流问题,这表明在spring-data-mongodb中没有对此操作的支持在新的spring-data-mongodb 1.10.0中是否支持此操作 db.orders.aggregate([ { $lookup: { from: “inventory”, localField: “item”, foreignField: “sku”, as: “inventory_docs” } } ])

无法在Mongodb中序列化LocalDate

我使用java 8 java.time.LocalDate来解析日期。 但是尝试将一个LocalDate对象插入到mongodb中。 我在java驱动程序中遇到错误: private def writeData(measure: DBCollection, installation: Int, date: String, dates: ListBuffer[LocalDate], values: ListBuffer[BigDecimal], validated: Boolean, overwrite: Boolean) { val timeValues: BasicDBList = new BasicDBList var i = 0 while ( i < dates.size ) { val obj: BasicDBObject = new BasicDBObject("time", dates(i)) obj.put("value", values(i).toString()) timeValues.add(obj) i += 1 } if ( […]

如何从Mongo java驱动程序调用db.Collection.stats()

从Mongodb客户端,我们可以使用db.Collection.stats()来获取集合的状态,例如: +记录数(计数) +磁盘大小(storageSize) +索引(indexSizes) +平均对象大小(avgObjSize) 现在我想用Mongodb java驱动程序监控来自Web后端的这些数据,请告诉我如何获取它们? 我已经提到过: http : //mongodb.github.io/mongo-java-driver/3.0/driver-async/getting-started/quick-tour-admin/但这对我来说还不够。 谢谢!

在mongodb中读取数组?

嗨我在mongodb中的数组有些麻烦。 使用java读取文档没有问题,但是读取数组文档中的内容是个问题。 可以说我有一个集合myCol: {“name”: “lenny linux”, “gender”: “m”, “computers”: [{“name”: “computer”}, {“name”: “computer2”} {“name”…}]} 所以有一个带计算机的arrays。 我可以阅读整个文件 DBCollection myCol = getCollection(…); BasicDBObject query = new BasicDBObject(); query.put(name, “lenny linux”); DBCursor cursor = myCol.find(query); while (cursor.hasNext()) { System.out.print(cursor.next()); } 但我只需要计算机的名称,所以我必须以某种方式阅读数组。 不要在mongodb中获得这个数组的东西。 如果我想从mongodb数组中删除一些内容呢? 它与删除普通文件不一样…谢谢你的帮助! 编辑:如果我正在阅读mongodb页面: http : //www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-ValueinanArray我真的不明白。 他们有一系列的颜色,然后他们像这样读红色: db.things.find({ colors :”red” }); 我为什么要这样做? 如果我想读取数组以了解数组中的内容。 用户不知道有“红色”或蓝色或其他什么。 也许数组颜色是空的? 然后我得到一个零,0或其他什么,如果有4种颜色然后给我这些颜色,打印出来。 […]

DAO和dependency injection,建议?

这是我第一次使用DAO模式。 从我到目前为止所读到的 ,实现这种模式将帮助我从任何持久性实现中分离我的调用代码(控制器) – 正是我想要的; 也就是说,我不想被重新使用任何特定的数据库或第三方库。 我正在使用MongoDB和morphia(作为示例)创建一些测试代码(以TDD方式),并使用morphia提供的BasicDAO类。 据我所知,扩展BasicDAO需要一个接受Morphia和Mongo对象的构造函数; 这些是非常具体的(第三方)类型,我真的不想在DAO类本身之外浮动。 我怎样才能拥有更多可插拔架构? 我的意思是,我应该考虑如何配置我的应用程序以使用具有特定配置参数的特定DAO,在实际源外部?

如何在mongodb中找到匹配的记录?

我在我的collections中有一个记录,我想获取身份为1的人的详细信息。但我得到的细节是2次而不是1次。 db.mycollection.insert({“person” : [ { “id”:1, “details” : { “name” : “Aswini”, “Age” : 10 }}, { “id”:2, “details” : { “name” : “Mahesh”, “Age” : 11}}]}) 然后跑 > db.mycollection.findOne({“person.id”:1},{“person.details”:1,”_id”:0}) 结果是: { “person” : [ { “details” : { “name” : “Aswini”, “Age” : 10 } }, { “details” : { “name” : “Mahesh”, “Age” […]

如何将带有动态密钥的文档映射到Spring MongoDb实体类

我有一个可以有动态密钥名称的文档: { “_id” : ObjectId(“51a29f6413dc992c24e0283e”), “envinfo” : { “appName” : “MyJavaApp”, “environment” : { “cpuCount” : 12, “heapMaxBytes” : 5724766208, “osVersion” : “6.2”, “arch” : “amd64”, “javaVendor” : “Sun Microsystems Inc.”, “pid” : 44996, “javaVersion” : “1.6.0_38”, “heapInitialBytes” : 402507520, } 这里envinfo的钥匙事先不知道。 在Spring Data Mongodb中创建实体类的最佳方法是什么,它将映射此文档?

MongoDB和Java驱动程序:查询中的“忽略大小写”

这是我现在使用的代码,如何添加“忽略大小写”属性? DBObject query = new BasicDBObject(“prop”, value); 谢谢

mongodb打开连接问题

我的mongo控制台中有以下日志: Tue Jul 23 17:20:01.301 [initandlisten] waiting for connections on port 27017 Tue Jul 23 17:20:01.401 [websvr] admin web console waiting for connections on port 28017 Tue Jul 23 17:20:01.569 [initandlisten] connection accepted from 127.0.0.1:58090 #1 (1 connection now open) Tue Jul 23 17:20:01.570 [initandlisten] connection accepted from 127.0.0.1:58089 #2 (2 connections now open) Tue […]