如何使用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);
答案 0 :(得分:9)
我不知道您使用的是什么版本的mongodb。但这是最新版本中提供的内容。
$gte
选择字段值大于或等于(即> =)指定值的文档
query.find( { marks: { $gte: 89} } )
答案 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