2011-01-01 3 views
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' 
}] 

К сожалению, нет. Что я делаю не так?

ответ

5

Я использовал mongodb из репозитория ubuntu, который старше 1.5.3 (документация mongodb говорит, что $ или доступна из 1.5.3). После того, как я перешел на последнюю версию (1.6.5), все работает так, как ожидалось.

+3

Upvote: То же самое произошло со мной. Я знаю, что глупо двигаться вверх, но иногда вы стучите головой о стену, и вам просто нужна такая запись, чтобы напоминать себе, чтобы проверить основные вещи ... как номера версий. –

Смежные вопросы