繁体   English   中英

Mongoose 查找具有任何值的字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM