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

How to use MongoDB $slice in Node.js

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

我要运行的查询是

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

Monk 不支持 "projection" 或 .find() 的方法签名中的其他参数对象。为了使用 "truly native" 功能,有一个 .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 操作默认执行的操作。