【发布时间】:2018-06-15 00:31:19
【问题描述】:
我正在 mongoose 中执行一个查询,我需要在其中找到我的数据库中的所有用户并对它们进行排序并将结果限制为 10。 我的查询路线是:(路线是“/user/top”)
router.get('/top', middleware.ensureAuthenticated, function (req, res) {
User.find({}).sort({bestScore: 1}).limit(10).exec(function (err, result) {
if(err){
res.json({
status:"error",
data:err
});
}
else {
res.json({
status:"ok",
data: result
})
}
})
});
我的用户模型:
var UserSchema = new mongoose.Schema({
image: String,
displayName: String,
bestScore:Number,
});
编辑 1:
你可以看到我的 _id 是 ObjectId 类型的。
【问题讨论】:
-
您可能在集合中存储了 _id 不是 ObjectId 的文档
-
但是当我在终端中运行相同的命令时,它会被执行。
-
shell 不在乎
_id是什么类型,mongoose 会 - 因为你的架构 - 因为它没有明确声明它被假定为 ObjectId 类型。 -
我还能做些什么吗?我想让猫鼬把它保存为 ObjectId 。