我很难尝试在阵列上执行切片
我有一个名为comments的集合,每个文档都有一个数组字段,我想访问它并应用切片用于分页目的请帮助!!尝试monk
和mongodb
没有好的
示例:
{
_id:xyz,
msgs:[{.....},{.....},{.....}]
}
database.collection("comments")
.find({"_id": id},{ "msgs": { "$slice": [2,5] } })
.toArray( function(err, result){
//implementation
});
答案 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驱动程序版本进行了一些“重大”更改,包括查询中的投影。