0

我是 mongodb 的新手,我有一个这样的 JSON:

{
    "first_name" : "John",
    "last_name"  : "Smith",
    "address" : {
        "street" : "123 Main Street",
        "city"   : "Anytown",
        "state"  : "NY"
   }
}

现在我想找到“street”=“123”(比如说)的所有文件。在 mongo shell 中,我这样做如下:

db.collection_name.find(
  {
    'address.street' : '123'
  }
)

在 Java 中,如果我想查找 "firstname" = "John" 的文档,我会这样做:

BasicDBObject nameQuery = new BasicDBObject();
nameQuery.put("firstname", "John");
DBCursor cursor = collection.find(nameQuery);

我无法弄清楚 adress.street,我尝试了一些方法,但没有成功。

我试过这个:

addressQuery.put("address.street", "123");
4

1 回答 1

0

你的建议应该有效。这对我有用:

DBCollection coll = db.getCollection(...);
DBCursor cursor = coll.find(new BasicDBObject("address.street", "123 Main Street"));
while (cursor.hasNext()) {
    System.out.println(cursor.next()); //prints the object
}
于 2013-06-27T14:38:44.103 回答