1

ネストされたフィールド f5=12 を含むドキュメントを取得するにはどうすればよいですか?

db.products.insert( { f: "カード", f1: {f2 : {f3 : 15 } } } )

db.products.insert( { f: "カード", f1: {f2 : {f4 : {f5 : 12} } } )

db.products.insert( { f: "カード", f1: {f2 : {f3 : {f5 : 43} } } )

db.products.insert( { f: "カード", f1: {f2 : {f4 : 98} } } )

私はこのように試してみました:

db.products.find($where : "this.content.indexOf('f5 : 12') != -1")

db.products.find( {$elemMatch : {f5 : 12} })

しかし、うまくいきません..誰かアイデアはありますか?

4

1 に答える 1

1

これを行うには、クエリでドット表記を使用できます。

db.products.find({'f1.f2.f4.f5': 12})

それぞれの親キーを指定する必要がない、より柔軟なものが必要な場合は、$where演算子を使用してドキュメントを検索する必要があります。

于 2013-02-06T04:20:40.567 に答える