如何在Node.js中使用MongoDB $ slice

我正在使用Node.js应用程序中的monk与MongoDB进行通信。 有没有办法使用修剪驱动程序的$ slice修饰符。

我想运行的查询是

db.messages.find( {"_id" : ObjectId("557c46191e7aef1b02d5db73")}, { msgs: { $slice: -2 } } ); 

Monk不支持在“方法签名”中使用.find() “投影”或其他参数对象。 为了使用“真正的本地”function,有一个.col访问器,它允许您使用本机驱动程序集合对象:

 var db = require('monk')('localhost/test'); var messages = db.get('messages'); messages.col.find({}, { "msgs": { "$slice": -2 } }).toArray( function(err,docs) { if (err) throw err; console.log( JSON.stringify( docs, undefined, 2 ) ); } ); 

还要注意,因为这是本机驱动程序,所以需要调用.toArray()或其他方法来处理返回的Cursor对象。 .toArray()元素类似于默认的Monk操作。