Node.js mongoose findOne与排序
我对mongo请求有问题:Node.js mongoose findOne与排序,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我对mongo请求有问题: models.user.findOne( {}, { sort: { date_register: -1 } }, function(err, result) { console.log(err); } 我有 { [MongoError: Error: Unsupported projection option: date_register] name: 'Mon
models.user.findOne(
{},
{
sort: {
date_register: -1
}
},
function(err, result) {
console.log(err);
}
我有
{ [MongoError: Error: Unsupported projection option: date_register] name: 'MongoError' }
作为错误
我想在注册日期前获得我的用户
谢谢这将根据您的mongoose版本略有不同,但是
findOne
的方法签名如下所示:
function findOne (conditions, fields, options, callback)
您打算作为选项
(排序)处理的内容,mongoose将作为字段
(要加载的字段)处理
您可以尝试为字段显式传递null
:
models.user.findOne({}, null, { sort: { date_register: -1 } }, callback);
但如果可以的话,您可能应该使用查询API,它更清晰,比如:
models.user.findOne({}).sort({ date_register: -1 }).exec(callback);
第二个例子在我看来是不正确的。。
.findOne({}).sort(..)
是否从Mongoose返回a记录,然后对结果进行排序?也就是说,排序将只应用于返回的单个记录,假设Mongoose使用Mongo中的底层.findOne()
函数,根据反映磁盘上文档顺序的自然顺序返回第一个文档。
否,因为Mongoose查询的工作方式。许多mongoose方法,如果没有传递回调,将返回一个对象,该对象允许部分构建发送给mongoose的查询。在示例中,findOne
和sort
被链接起来,并在调用exec
时最终构造成一个查询。@numbers131407,mongo shell中是否有findOne().sort()
?