【发布时间】:2020-10-31 17:29:08
【问题描述】:
我有一个形状为
的文档const Model = mongoose.Schema({
something1: {type:String},
someNumber1:{type:Number},
something2: {type:String},
someNumber2:{type:Number},
aFloatNumber: {type:Number}
)}
在索引文档之后
Model.index({something1:1 , something2:1 , aFloatNumber:1})
为了更好的表现,我希望我做对了,如果我做错了,请纠正我。
我正在尝试查询 usign 语法:
const model = await Model.find({
$and:[{something1:anInput}, {something2:anotherInput}]})
.sort(aFloatNumber)
现在我想限制返回的查询,因为它可能是一个非常大的列表以提高性能,但是,此限制会根据输入而改变。基本上我希望猫鼬继续将 someNumber1 添加在一起并在它大于输入数字后停止返回。类似于下面的代码:
const model = await Model.find({
$and:[{something1:anInput}, {something2:anotherInput}]})
.sort(aFloatNumber)
.limit( sum(someNumber1) >= theInputNumber )
所以基本上我的问题是:
- 我是否根据我的查询正确索引了文档?
- 限制查询是否对性能有任何影响,因为它正在对数据进行排序,并且我认为它将检查所有文档以便能够对其进行排序?
- 如果它对性能产生巨大影响,那么正确的语法是什么,因为我将在我的应用程序中大量进行此查询?
【问题讨论】:
标签: node.js mongodb sorting mongoose limit