【发布时间】:2014-07-11 08:08:23
【问题描述】:
我有以下用户对象:
{
"_id" : ObjectId("someId"),
"name" : "Bob",
"password" : "fakePassword",
"follower" : [...],
"following" : [..]
}
我需要对关注者列表进行分页,所以我使用切片投影运算符,但我只需要返回分页关注者列表。而且我不知道我是否以错误的方式进行操作,或者无法做到,但是限制字段不适用于切片投影。
以下是我尝试的几个查询:
collection.findOne(
{
_id: new ObjectId(userId)
},
{
follower: {$slice:[skip, parseInt(pageSize)]},
follower: 1
},..
和
collection.findOne(
{
_id: new ObjectId(userId)
},
{
follower: 1,
follower: {$slice:[skip, parseInt(pageSize)]}
},
但是这些返回对象中的所有值,并且不限制字段,尽管切片在这两种情况下都可以正常工作。
此外,当我执行 _id:0,following:0 之类的操作时,这部分工作,但我不想像这样提及查询中的每个字段,一旦我决定更改架构,它可能会产生问题。
我该如何让它工作,查询的语法是什么才能让它工作..??
【问题讨论】:
标签: javascript node.js mongodb mongoose mongodb-query