NodeJS/MongoDB: 对数组字段进行切片操作
NodeJS/MongoDB: Perform Slice operation on an array field
我很难尝试对数组执行切片
我有一个名为评论的集合,每个文档都有一个数组字段,我想访问它并应用切片进行分页,请帮忙!!试过 monk
和 mongodb
都不好
示例:
{
_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 类型。
NodeJS 的 mongodb
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" 更改,包括查询中的投影。
我很难尝试对数组执行切片
我有一个名为评论的集合,每个文档都有一个数组字段,我想访问它并应用切片进行分页,请帮忙!!试过 monk
和 mongodb
都不好
示例:
{
_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 类型。
NodeJS 的 mongodb
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" 更改,包括查询中的投影。