我有以下记录
{
"title": "Kim floral jacquard minidress",
"designer": "Rotate Birger Christensen"
}
我如何使用值数组在集合中查找记录。例如,我有以下数组值。因为“标题”字段包含“花卉”值,所以选择了该记录。
['floral', 'dresses']
我在下面使用的查询不起作用。 :(
queryParam = ['floral', 'dresses']
def get_query(queryParam, gender):
query = {
"gender": gender
}
if (len(queryParam) != 0):
query["title"] = {"$in": queryParam}
return query
products_query = get_query(query, gender)
products = mongo.db.products.find(products_query)
您需要与$in运算符一起进行正则表达式搜索:
db.collectionName.find( { title: { $in: [ /floral/, /dresses/ ] } })
要添加到上一个答案中,还有很多工作要做,才能使其在pymongo中起作用。您必须使用re.compile()
才能使正则表达式搜索生效:
re.compile()
或者,您可以使用这种方法来消除对import re
queryParam = [re.compile('floral'), re.compile('dresses')]
运算符的需要:
$in
并且一旦完成,您甚至不需要使用re.compile:
import re
queryParam = [re.compile('floral|dresses')]
选择您的选择。