【问题标题】:Conditional query in Mongoose where params may be missingMongoose 中可能缺少参数的条件查询
【发布时间】:2015-12-01 13:41:44
【问题描述】:

我想传递值以使用 Mongoose 进行搜索。这行不通……我不认为…… How to build a conditional query in Mongoose? 因为我想对值应用逻辑,例如对于日期,我将通过两个值并做大于和小于。这纯粹是一个 = 查询。

【问题讨论】:

  • 嘿,请告诉我们你尝试过的代码,你得到的错误。我们很乐意提供帮助,但需要更多详细信息

标签: node.js mongodb mongoose


【解决方案1】:

您可以简单地使用.gt.lt 分别表示大于和小于。

var query = Character.find();

if (maxDate)
    query = query.where('dateParam').lt(maxDate);
if (minDate)
    query = query.where('dateParam').gt(minDate);

query.exec(function(err, characters) {
    if (err) throw err;
    res.send(characters);
});

【讨论】:

  • 作为后续。我想允许没有文本的搜索。这不起作用,有什么建议吗? if(req.query.text){ var query = Record.find( { $text : { $search : req.query.text } }, { score : { $meta: "textScore" } } ) } else { var query = Record.find() }(对不起,我无法让代码格式化工作......)
  • @latitudehopper 你能为此发表一个不同的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-06
  • 2014-07-14
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多