如何通过键名从 mongoDB 中检索值?

新手上路,请多包涵

我是 mongoDB 的新手。我正在使用 java 和 mongoDB。我有一个 json,

 [{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "AA" ,
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"},
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}]

    [{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "AA" ,
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"},
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}]

    [{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "BB" ,
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"},
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}]

    [{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "BB" ,
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"},
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}]

在一个集合中,所有文档都有不同的 HomeTown ,我只知道键名 HomeTown ,我怎样才能得到 HomeTown values?

在 mongo 站点中,我只能找到 find()findOne()

谢谢!

原文由 user405398 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 533
2 个回答

find() 足够了。

 db.CollectionName.find({},{HomeTown:1})

在java中,它将是:

 BasicDBObject query = new BasicDBObject();
BasicDBObject field = new BasicDBObject();
field.put("HomeTown", 1);
DBCursor cursor = db.getCollection(collectionName).find(query,field);
while (cursor.hasNext()) {
    BasicDBObject obj = (BasicDBObject) cursor.next();
    result.add(obj.getString("HomeTown"));
}

原文由 Ron 发布,翻译遵循 CC BY-SA 2.5 许可协议

 db.CollectionName.find({},{HomeTown:1,PhoneNumber:0})

会错,但是

 db.CollectionName.find({},{HomeTown:1, _id:0})

是对的,因为您需要显式抑制 _id 。仅供参考。

原文由 Dhruv 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题