【发布时间】:2021-03-04 15:50:45
【问题描述】:
我通过 HTML 表单从用户那里获取值 a、b 并将其传递给以下查询。我的要求是根据 a & b 值检索文档,如果它们为空,我需要检索所有文档。有人可以帮我查询吗?我应该通过什么而不是 search_data["a"] & search_data["b"] 来获取所有文档?
query = user_collection.aggregate([
{
"$project": {
"_id": 0
}
},
{
"$match": {
"a": search_data['a'],
"b": search_data['b'],
}
}
])
【问题讨论】:
-
你能分享一个文档示例和预期输出吗?
-
你应该改为传递
{$exists:true} -
{ "_id" : ObjectId("512bc95fe835e68f199c8686"), "author" : "dave", "score" : 80, "views" : 100 } { "_id" : ObjectId("512bc962e835e68f199c8687" ), "author" : "dave", "score" : 85, "views" : 521 } =================== 在上面的示例数据中,用户将提供作者和分数 - 如果缺少两个值中的任何一个,查询应返回所有文档。
标签: mongodb mongodb-query pymongo pymongo-3.x