这里我有一个文档,其中包含一个数组。看起来像:
var UserSchema = new mongoose.Schema({
activities:[{
action:String,
time:Number,
extraInfo:{}
}]
})
现在我想选择这个数组,
UserModel
.findById(user._id)
.select('activities')
.lean()
.exec((err,user)=>{....})
但我只需要最新的(例如 20 条)事件记录。
有什么办法可以限制选中数组的长度吗?
最佳答案
您可以使用 MongoDB $slice
运算符:https://docs.mongodb.org/manual/reference/operator/projection/slice/#slice-projection
Mongoose 有一个帮助函数来实现这个: http://mongoosejs.com/docs/api.html#query_Query-slice
所以,你的例子变成了这样:
UserModel
.findById(user._id)
.slice('activities', 20)
.select('activities')
.lean()
.exec((err,user)=>{....})
关于node.js - 通过 Mongoose 查找限制所选数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36514089/