我有这个结构
{
"_id": "willwill",
"rental": {
"hitchhikergalaxy": {[...]},
"animalfarm": {[..]}
}
}
其中
[..]
是一个嵌入式文档,存储租赁的详细信息(并且在另一个集合中也存在完全相同的数据),而rental
对象的键是_id
集合的book
。如何进行此查询?
db.users.find({"rental.animalfarm": {'$exists': true}})
(我在php上使用mongodb,但上面的例子是javascript)
最佳答案
您可能需要考虑重构文档,以便:
"rental":
[
{ "name":"hitchikergalaxy", "attributes": { your stuff } },
{ "name":"animalfarm", "attributes": { your stuff } }
]
现在你有了确保索引“rental.name”的路径
您还可以找到任何用户使用以下方式租用animalfarm的所有文档:
db.users.find( { "rental.name": "animalfarm" } )
我一直在使用数据作为键/名称——这似乎总是让事情变得比需要的更复杂。