如何与mongoose一起执行sorting和限制查询?

我有一个与节点写下来的方法来从集合中查询

query: function (model, conditon, options) { console.log(conditon, options); return new Promise(function (resolve, reject) { options = options || {}; model.find(conditon, {}, options).exec(function (error, data) { if (error) reject(error); resolve(data); }) }) } 

我想为下面的查询获取数据,

 db.getCollection('_event').find({}).sort({'metadata.popularity': 1}).limit(10) 

我应该如何修改上述方法来支持这个查询?

这是我如何从另一个文件调用查询function,

  dbService.query(eventModel, { 'eventId': idRetrieved }, {}); }).then(data => dbService.disconnectDb(data)) .then(data => callback(data)) .catch((error) => { dbService.disconnectDb(error).then(error => { console.log(error); callback({}, error); }) 

只需调用sortlimit find调用返回的Query对象。

但是您不需要创build自己的Promise因为如果不提供callback, exec已经返回一个promise。

 function (model, condition, options, sort, limit) { return model.find(condition, {}, options).sort(sort).limit(limit).exec(); }