NodeJS / MongoDB:对数组字段

时间:2017-09-21 16:25:39

标签: node.js mongodb monk

我很难尝试在阵列上执行切片 我有一个名为comments的集合,每个文档都有一个数组字段,我想访问它并应用切片用于分页目的请帮助!!尝试monkmongodb没有好的

示例:

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


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

2 个答案:

答案 0 :(得分:1)

适用于mongodb驱动程序:

而不是

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

使用

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

在给定here时,$slice运算符属于 Projection 类型。 NodeJS mongodb驱动程序需要调用额外的.project函数来投影选择字段以及使用投影运算符。

答案 1 :(得分:0)

从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 } });`

基本上,从2.x升级到3.x的node-js mongo驱动程序版本进行了一些“重大”更改,包括查询中的投影。