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 } }
  ]

これで、ensureIndex "rental.name" へのパスができました

以下を使用して、任意のユーザーが animalfarm をレンタルしたすべてのドキュメントをさらに見つけることができます。

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

私はデータをキー/名前として使用する道をたどってきました-そして、それは常に物事を必要以上に複雑にしているようです.

于 2011-10-19T02:04:04.910 に答える