我想使用这些字段进行搜索,
{ "tag":"tag2", "date":"2022-07-18", "userId":"1", "postId":"12" }
,如果某些字段为空(假设标签:"),那么搜索结果应该基于其他有一些关键字的字段,如果所有字段都是空的,那么结果将显示所有数据。
一种选择是使用$and
和$or
。例如:
db.collection.find({
$and: [
{$or: [{tag: "tag2"}, {tag: " "}]},
{$or: [{userId: "1"}, {userId: " "}]},
{$or: [{postId: "12"}, {postId: " "}]}
]
})
看看它在操场的例子中是如何工作的