4

我有这个结构

{
    "_id": "willwill",
    "rental": {
        "hitchhikergalaxy": {[...]},
        "animalfarm": {[..]}
    }
}

[..]是一个嵌入式文档,存储了租赁的详细信息(并且完全相同的数据也存在于另一个集合中),并且rental对象的键是_id集合的book

ensureIndex()该如何查询?

db.users.find({"rental.animalfarm": {'$exists': true}})

(我在 PHP 上使用 MongoDB,但上面的示例是在 JavaScript 中)

4

1 回答 1

4

您可能需要考虑重构文档,以便:

"rental": 
  [
     { "name":"hitchikergalaxy", "attributes": { your stuff } },
     { "name":"animalfarm", "attributes": { your stuff } }
  ]

现在你有一个路径来确保索引“rental.name”

您可以使用以下方式进一步找到任何用户租用动物农场的所有文件:

db.users.find( { "rental.name": "animalfarm" } )

我一直在使用数据作为键/名称的路径——它似乎总是让事情变得比他们需要的更复杂。

于 2011-10-19T02:04:04.910 回答