10

コレクションに次のフィールドがあります。

[{
     u'_id': ObjectId('4d1f7b4d5d256b18c8000000'),
     u'name': u'1'
 },{
     u'_id': ObjectId('4d1f7b505d256b18c8000001'),
     u'name': u'2'
 },{
     u'_id': ObjectId('4d1f7b525d256b18c8000002'),
     u'name': u'3'
 }]

次に、次のようなクエリを作成します。

 [x for x in c.things.find( {'$or' : [{'name':'1'}, {'name':'2'}] } )]

そして私は得ることを期待しています:

[{
    u'_id': ObjectId('4d1f7b4d5d256b18c8000000'),
    u'name': u'1'
}, {
    u'_id': ObjectId('4d1f7b505d256b18c8000001'),
    u'name': u'2'
}]

残念ながら違います。私は何を間違っていますか?

4

1 に答える 1

5

1.5.3 より古い ubuntu リポジトリの mongodb を使用していました (mongodb のドキュメントによると、$or は 1.5.3 から利用可能です)。最新リリース (1.6.5) に変更した後、すべてが期待どおりに機能しています。

于 2011-01-01T20:07:08.800 に答える