1

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

我要运行的查询是

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

1 回答 1

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默认情况下执行的操作。

于 2015-06-14T03:17:15.130 回答