首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoDB - (NodeJS) -基于两个字段的find()。如果两个字段都不为空,则从两个字段中查找;如果另一个字段为空,则仅从其中一个字段中查找

MongoDB - (NodeJS) -基于两个字段的find()。如果两个字段都不为空,则从两个字段中查找;如果另一个字段为空,则仅从其中一个字段中查找
EN

Stack Overflow用户
提问于 2016-07-17 10:46:57
回答 1查看 82关注 0票数 0

有人能解释一下我怎样才能避免这种情况吗

MongoDB - find() - imgur链接

MongoDB - (NodeJS) -基于两个字段的find()。如果两个字段都不为空,则从两个字段中查找;如果另一个字段为空,则仅从一个字段中查找。

我已经看过MongoDB的documentation了。我发现的最好的东西是:

代码语言:javascript
运行
复制
$and : [
        { $or : [ { price : 0.99 }, { price : 1.99 } ] },
        { $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
    ]

这对我还是没什么帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-07-17 15:13:37

只需动态构建您的查询对象:

代码语言:javascript
运行
复制
var query = {};
if (searchParameters.specialty !== '') {
  query.program = searchParameters.specialty;
}
if (searchParameters.state !== '') {
  query.state = searchParameters.state;
}
Model.find(query, ...);

(您可能还希望确保至少有一个不为空,否则查询将匹配所有文档)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38417443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档