【发布时间】:2016-04-23 21:27:03
【问题描述】:
假设我有以下persons 集合:
{
"_id": ObjectId("569d07a38e61973f6aded134"),
"name": "john",
"pets": [
{
"name": "spot",
"type": "dog",
"special": "spot eye"
},
{
"name": "bob",
"type": "cat",
}
]
},
{
"_id": ObjectId("569d07a38e61973f6aded135"),
"name": "susie",
"pets": [
{
"name": "fred",
"type": "cat",
}
]
}
我如何检索宠物中具有special 字段的人?我希望返回的 pets 数组仅包含带有 special 字段的宠物。
例如,上述集合的预期结果是:
{
"_id": ObjectId("569d07a38e61973f6aded134"),
"name": "john",
"pets": [
{
"name": "spot",
"type": "dog",
"special": "spot eye"
}
]
}
我希望在一个使用pymongo 的查询中实现这一点,尽管即使只是一个工作的 MongoDB 或猫鼬查询也会很可爱。
我尝试过:
db.persons.find({pets:{special:{$exists:true}}});
但它返回了 0 条记录,即使应该有一些。
【问题讨论】: