如何与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); })
只需调用sort
并limit
find
调用返回的Query
对象。
但是您不需要创build自己的Promise
因为如果不提供callback, exec
已经返回一个promise。
function (model, condition, options, sort, limit) { return model.find(condition, {}, options).sort(sort).limit(limit).exec(); }