NodeJS/MongoDB: 对数组字段进行切片操作

NodeJS/MongoDB: Perform Slice operation on an array field

我很难尝试对数组执行切片 我有一个名为评论的集合,每个文档都有一个数组字段,我想访问它并应用切片进行分页,请帮忙!!试过 monkmongodb 都不好

示例:

 {  
   _id:xyz,
   msgs:[{.....},{.....},{.....}]
 }


database.collection("comments")
  .find({"_id": id},{ "msgs": { "$slice": [2,5] } })
  .toArray( function(err, result){
        //implementation
   });

对于mongodb Driver:

而不是

.find({"_id": id},{ "msgs": { "$slice": [2,5] } })

使用

.find({"_id": id}).project({ "msgs": { "$slice": [2,5] } })

根据给定的 here$slice 运算符属于 Projection 类型。 NodeJSmongodb driver 需要调用额外的 .project 函数来投影选择字段以及使用投影运算符。

来自 node-js mongo 驱动程序 docs:

2.x 语法:

const cursor = coll.find({ a: 42 }, { someField: 1 });

3.x 语法:

const cursor = coll.find({ a: 42 }).project({ someField: 1 });

/* OR */

`const cursor = coll.find({ a: 42 }, { projection: { someField: 1 } });`

基本上 node-js mongo 驱动程序版本从 2.x 升级到 3.x 有几个 "breaking" 更改,包括查询中的投影。