7

私は次のようなデータベースコレクション(folsという名前)を持っています:

{'followers':
        {
           '123':1
           '123':2
           '123':3
         }
}

クエリを実行した場合(pymongoを使用):

cursor = fols.find()
cursor.count()
>>3

正常に動作します。今:

cursor = fols.find({'followers':{'123':1}})
cursor.count()
>>1

再び正常に動作します。しかし、私が試してみると:

cursor = fols.find({'followers':{'123':{'$exists': True}}})
cursor.count()
>> 0

3つのレコードがある場合でも、0を返します。

4

2 に答える 2

27

完全なオブジェクトと一致しない場合は、ドット表記を使用して、埋め込まれたオブジェクトに対して演算子を使用する必要があります。したがって、この場合:

cursor = fols.find({'followers.123':{'$exists': True}})
于 2012-09-13T02:43:25.630 に答える
5

ドット構文を試してください。

cursor = fols.find({'followers.123': {'$exists': True}})

しかし、上記の私のコメントも参照してください。(サブ)ドキュメントに同じキーを複数回持つことはできません。

于 2012-09-13T02:44:36.223 に答える