如果在mongoDB中传递的变量为空或null,则要显示所有文档吗
以下是我在如果在mongoDB中传递的变量为空或null,则要显示所有文档吗,mongodb,mongoose-schema,mongo-shell,Mongodb,Mongoose Schema,Mongo Shell,以下是我在人物集合中的数据 { name : 'John Doe', gender : 'male' }, { name : 'Emma', gender : 'female' } { name : 'Mr. Smith', gender : 'male' } 如果我使用以下方式运行查询 `variable = male` `people.aggregate.([ { $match : { gender : variable } } ])`
人物
集合中的数据
{
name : 'John Doe',
gender : 'male'
},
{
name : 'Emma',
gender : 'female'
}
{
name : 'Mr. Smith',
gender : 'male'
}
如果我使用以下方式运行查询
`variable = male`
`people.aggregate.([
{
$match : {
gender : variable
}
}
])`
然后将显示所有variable=male
的文档,女性文档也是如此
但是如果出现这样的情况,我必须同时显示性别
、男性
和女性
,并且我也不想编写另一个查询和变量传递空白
或空
值,那么在这种情况下,我应该如何显示所有带有男性
和女性
的文档
我在后台使用moongoose库。
由于某些原因,我不想使用
.find()
传递给$match
阶段或find
方法的对象可以提前构建,您可以根据变量内容有条件地构建
var query = {};
if (variable) {
query.gender=variable
}
people.aggregate.([
{
$match : query
}
])
{$gt:''}
将同时匹配'male'
和female
,因此如果{$gt:'male'}
那么所有类型的male
文档都将被提交?查询条件是如何确定的?查询条件是基于api的,比如api/male
=>应该显示所有的male
,api/
=>“应显示男性和女性”