#python #json #mongodb #find #pymongo
#python #json #mongodb #Найти #pymongo
Вопрос:
Я ищу команду в pymongo, которая выполняет эквивалент этой команды mongodb:
db.collection.find({
$and:[
{"key1":"value1"},
{
$or: [
{"key2" : "value2"},
{"key2": "value3"}
]
}
]
})
В общем, я хотел бы выполнить поиск в документе, добавляющем более одного условия.
Спасибо
Комментарии:
1. На самом
$and
деле это неявно во всех запросах MongoDB, поэтому вам не нужно оборачивать все это. На самом деле нет никакой разницы, поскольку синтаксис python для этого практически одинаков. У вас также была опечатка дополнительной фигурной}
скобки.2.
<collectionname>.find_one(<condition>)
должно работать
Ответ №1:
Вы можете делать все, что делает оболочка mongodb, но с помощью pymongo. Просто используйте строки!
client = MongoClient('localhost', 47017)
mydb = client.mydb
mycol = mydb.mycol
mycol.find({
"$and":[
{"key1":"value1"},
{
"$or": [
{"key2" : "value2"},
{"key2": "value3"}
]
}
]
})
Ответ №2:
Следуя документации API:
Просто используйте find(), аргумент spec может обрабатывать многоключевой dict, поэтому вы можете просто использовать
col.find({"key1":"value", "$or":["key2":"value2", "key3":"value3"]})