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

时间:2015-06-13 20:34:44

标签: node.js mongodb monk

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

我想要运行的查询是

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

1 个答案:

答案 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操作默认执行的操作。