Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongoose findOne与排序_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js mongoose findOne与排序

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

我对mongo请求有问题:

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()