4

私はこのコレクションを持っています

{
    "name" : "montalto",
    "users" : [
        {
            "username" : "ciccio",
            "email" : "aaaaaaaa",
            "password" : "aaaaaaaa",
            "money" : 0
        }
    ],
    "numers" : "8",
    "_id" : ObjectId("5040d3fded299bf03a000002")
}

montaltoという名前のコレクションとciccioという名前のユーザーを検索する場合は、次のクエリを使用しています。

db.coll.find({name:'montalto', users:{username:'ciccio'}}).count()

しかし、それは機能しません。どこが間違っていたのですか?

4

2 に答える 2

7

埋め込まれた配列オブジェクトの内部と一致させるには、ドット表記を使用する必要があります。

db.coll.find({name: 'montalto', 'users.username': 'ciccio'}).count()
于 2012-08-31T15:45:43.897 に答える
6

コレクションを明確にすることは、ドキュメントのグループです。したがって、この質問の用語は少しずれています。

埋め込まれたドキュメントやオブジェクトにアクセスするには、従来のJavaScriptの場合と同じようにドット表記を使用するだけです。

db.coll.find({name: 'montalto', 'users.username': 'ciccio'})

.count()もちろん、その最後にを追加することもできます。

于 2012-08-31T16:35:51.037 に答える