2012-08-31 28 views
2

这里是我的MongoDB的文件:的MongoDB从查找查询检索数组值

{ "FRIENDS" : [  
    { "LOC" : "13.039064033333332,77.5547927", "NAME" : "A1", "PHONE_NUMBER" : "817361155" } ], 
"MYID" : "349512956", 
"MYLOCATION" : "13.0389541,77.5549799", 
"OCCASION" : "cafe", 
"_id" : ObjectId("503d87150f43159357000001"), 
"average" : "13.0389541,77.5549799" } 

这里是我的查询

> db.test_collection.find({"MYID":"349512956"},{"FRIENDS.PHONE_NUMBER":"817361155"}); 

和输出

{ "FRIENDS" : [ { "PHONE_NUMBER" : "817361155" } ], "_id" : ObjectId("503d87150f43159357000001") } 

不过,我想整个的朋友文件包含在结果中。 LOC,NAME,PHONE_NUMBER。我如何获得这些?任何帮助将不胜感激。我正在搜索monogo文档,但无法找到我的答案。

回答

3

试试这个

// i.e., select * from things where MYID=somethig and PHONE_NUMBER="foo" 
db.test_collection.find({"MYID":"349512956", "FRIENDS.PHONE_NUMBER":"817361155"}); 
+0

哈,刚刚改了括号:)。谢谢@Bob –

+0

很乐意帮忙。 :) – Bob

0

更具体地讲,第二个参数选择希望输出的领域。看到下面的实际执行情况:

> db.test_collection.find 
function (query, fields, limit, skip, batchSize, options) { 
    return new DBQuery(this._mongo, this._db, this, this._fullName, 
      this._massageObject(query), fields, limit, skip, batchSize, options || 
      this.getQueryOptions()); 
}