如何通过键名从 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 许可协议

阅读 452
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题