如何使用Mongodb java获取文档数组?

时间:2015-04-21 11:50:49

标签: java mongodb mongodb-query mongodb-java nosql

如何在mongodb java中获取数组下的所有文档。我的数据库如下。想要检索数组198_168_1_134下的所有数据。

enter image description here

下面是我试过的一些内容,

eventlist.find(new BasicDBObject("$match","192_168_10_17"))
eventlist.find(new BasicDBObject("$elemMatch","192_168_10_17"))
eventlist.find(null, new BasicDBObject("$192_168_10_17", 1))

2 个答案:

答案 0 :(得分:1)

您有两种选择:

  • 使用.find()挑选你必须提取的文件。
  • 通过投影文档来使用聚合框架。

使用.find(),您可以执行以下操作:

db.collection.find({}, { 192_168_10_17 : 1 })

通过使用聚合框架,您可以执行以下操作:

db.collection.aggregate( { $project : { 192_168_10_17 : 1 } } )

将仅提取 192_168_10_17文档数据。

当然,为了让它在Java中运行,您必须这些查询转换为相应的BasicDBObject个实例链。

答案 1 :(得分:0)

通过使用mongo java驱动程序,您可以通过以下查询 -

来完成此操作
eventlist.find(new BasicDBObject(), new BasicDBObject("198_168_1_134", 1))