У меня есть следующий объект User:MongoDB Limit поле и срез проекция вместе
{
"_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
, эта часть работает, но я не хочу упоминать каждое поле в запросе вроде этого, это может создать проблемы, когда я решит изменить схему. Как я могу заставить это работать, что может быть синтаксисом запроса, чтобы заставить это работать .. ??
Так как в своем ответе, вы должны были определить все поля, которые нужны удалить, но в соответствии с MongoDB документов, вы можете также просто укажите поля, которые вам нужны, например 'followers: 1', поэтому это даст мне поле последователей и поле _id, и мне не нужно указывать все другие поля, которые мне не нужны. Мне нужно это для работы с оператором проекции среза. –
@SambhavSharma Если это ваш реальный вопрос, я с радостью отправлю патч для документации (уже участник), но на самом деле это не работает. Вам нужно явно исключить все поля, которые вы не хотите использовать при использовании '$ slice'. Вы также не можете смешивать включение и исключение в '.find()', и если вам нужна эта сложность, вы используете ['.aggregate()'] (http://docs.mongodb.org/manual/reference/method/db. collection.aggregate /) с оператором [** '$ project' **] (http://docs.mongodb.org/manual/reference/operator/aggregation/project/). –