我有一些像这样的记录
{
"_id": "test1",
"friend": {
"test2": {
"name": "ax",
"level": 1,
"intimacy": 0,
"status": 0
},
"test3": {
"name": "es",
"level": 1,
"intimacy": 0,
"status": 0
}
}
},
{
"_id": "test2",
"friend": {
"test2": {
"name": "ff",
"level": 1,
"intimacy": 0,
"status": 0
},
"test3": {
"name": "dd",
"level": 1,
"intimacy": 0,
"status": 0
}
}
}
我需要在_id = test1的文档中找到friend.test2的节点 我不想改变数据结构来解决这个问题。任何人都可以帮助我。 结果可能是这样的
{
"test2": {
"name": "ax",
"level": 1,
"intimacy": 0,
"status": 0
}
}
答案 0 :(得分:1)
尝试以下查询。
db.<coll>.find({ _id:"test1" }, { "friend.test2":1 })
答案 1 :(得分:0)
在mongo shell中你可以这样做:
db.collection.find({_id:"test1"},{"friend.test2":1})
对于php,您可以尝试类似
的内容$collection->find(array("_id"=>"test1"),array("friend.test2"=>true))
答案 2 :(得分:0)
以下代码正常运行。测试。
$results = $coll->find(array(), array("_id"=>"test1"),array("friend.test2"=> 1));
foreach($results as $test) {
print_r($test);
}