我在Node.js应用中使用monk与MongoDB进行通信。 有没有办法将$slice修饰符与monk驱动程序一起使用。
我想要运行的查询是
db.messages.find(
{"_id" : ObjectId("557c46191e7aef1b02d5db73")},
{ msgs: { $slice: -2 } }
);
答案 0 :(得分:1)
Monk在.find()
的方法签名中不支持“投影”或其他参数对象。为了使用“真正的原生”功能,有一个.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
操作默认执行的操作。