[英]Mongoose find field with any value
我有一个查找查询,例如:
person = await PersonSchema.find({
givenName: (gn == 'none') ? {} : gn,
lastName: (ln == 'none') ? {} : ln,
placeOfBirth: (pob == 'none') ? {} : pob,
dob: { $regex: (dob == 'none') ? {} : dob }
});
基本上,如果这些字段中的任何一个等于“无”,我想返回所有值...基本上将其从查询中删除...有人知道该怎么做吗?
或者甚至想到解决这个问题的另一种方法?
您应该使用 $and 以防您的两个字段不等于“无”。 也许像这样;
const filter = [{}] // if all field equal none, default $and gn !== 'none' && filter.push({givenName: gn}) ln !== 'none' && filter.push({lastName: ln}) pob !== 'none' && filter.push({placeOfBirth: pob}) dob !== 'none' && filter.push({dob: dob}) person = await PersonSchema.find({$and : filter});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.