2

私はこのような単純な構造化されたドキュメントを持っています:

"people" : [
    {
        "id" : "6241863",
        "amount" : 5
    }
],

人々は複数の要素を含むことができます。私はこれをうまく機能させることができました:

db.village.findOne({"people": {"$in": [{"id": "6241863", "amount": 5}]}})

しかし、金額を無視して、ID6241863の人と金額を含むドキュメントを検索したいと思います。

4

2 に答える 2

5

高度なクエリドキュメントによると、オブジェクトに到達するために配列値クエリとドット表記を混在させることができます。スキーマを使用した例を次に示します。

$ mongo
MongoDB shell version: 2.1.0
connecting to: test
> db.users.save({_id: 1, friends: [{id: 2, name: 'bob'}]})
> db.users.find({friends: {id: 2, name: 'bob'}})
{ "_id" : 1, "friends" : [ { "id" : 2, "name" : "bob" } ] }

> db.users.find({'friends.id': 2})
{ "_id" : 1, "friends" : [ { "id" : 2, "name" : "bob" } ] }

> db.users.find({'friends.name': 'bob'})
{ "_id" : 1, "friends" : [ { "id" : 2, "name" : "bob" } ] }

> db.users.find({'friends.name': 'ted'})
> 
于 2012-07-10T16:04:35.633 に答える
0

それを試してみてください

db.village.findOne({"people" : { "$in" : [{ "id" : "6241863" , "amount" : { "$ne" : null } }]}})
于 2012-07-10T14:56:07.917 に答える