2011-01-01 31 views
10

tôi có các trường này trong một bộ sưu tập:

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

Sau đó, tôi thực hiện một truy vấn như thế này:

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

và tôi hy vọng sẽ nhận được:

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

Thật không may là không. Tôi đang làm gì sai?

Trả lời

5

Tôi đã sử dụng mongodb từ kho lưu trữ ubuntu cũ hơn 1.5.3 (Tài liệu của mongodb nói rằng $ hoặc có sẵn từ 1.5.3). Sau khi tôi thay đổi sang bản phát hành mới nhất (1.6.5) mọi thứ đang hoạt động như mong đợi.

+3

Upvote: Điều tương tự cũng xảy ra với tôi. Tôi biết đó là một điều ngớ ngẩn để upvote trên, nhưng đôi khi bạn đang đập đầu của bạn chống lại bức tường và bạn chỉ cần một bài như thế này để nhắc nhở mình để kiểm tra những điều cơ bản ... như số phiên bản. –

Các vấn đề liên quan