猫鼬大于等于

时间:2018-04-26 12:28:01

标签: mongodb mongoose

如何使用Mongoose从Mongodb获得大于或等于的整数值? 假设下面的列表

list = [134,56,89,89,90,200] //Marks field

想要获得等于或大于89的值,结果集必须为[89,90,200] 在我的查询中,我能够获得大于89的值,我希望得到89

let x = 89;
query.find().where('marks').gt(x);

3 个答案:

答案 0 :(得分:9)

我不知道您使用的是什么版本的mongodb。但这是最新版本中提供的内容。

$gte选择字段值大于或等于(即> =)指定值的文档

query.find( { marks: { $gte: 89} } )

Here

答案 1 :(得分:1)

只需使用

.gte(upperlimit)

大于等于

.lte(lowerlimit)

小于等于

记住上限下限应该是数字。

答案 2 :(得分:0)

Query.prototype.gt方法与使用“大于”运算符相同。

在您的情况下,您必须使用gte方法来返回所需的结果-大于或等于给定值的结果:

let x = 89;
query.find()
  .where('marks')
  .gte(x)
  .exec();

此外,作为另一个回答,您始终可以使用本机MongoDB运算符$gte,但是如上所述,Mongoose通过其链接查询API提供了更直观的方法。

此外,如果您将Mongoose与Promises或async/await配合使用,请不要忘记添加 最后的exec()-这会将可兼容的查询结果转换为功能全面的Promise,例如:

let x = 89;
find().where('marks').gte(x).exec()
  .then(() => {/* rest of handling*/})
  .catch(() => { /* error handling */});

使用async/await的相同代码:

async function getResultsGreaterThan(x) {
  const results = await find().where('marks').gte(x).exec();
  console.log(results);
  return results;
}

getResultsGreaterThan(89);

有关猫鼬可链接查询API的更多信息,请参见相当可靠的官方文档https://mongoosejs.com/docs/api/query.html