Mongo Java-драйвер - получить фрагмент массива без каких-либо других полей - PullRequest
1 голос
/ 08 июня 2011

У меня есть класс с именем user, который можно упростить до:

class User {
    String[] friends;
    //Constructor etc...
}

Он хранится в коллекциях монго, называемых users.Я пытаюсь получить первые N элементов массива друзей без чего-либо еще из класса.

Прямо сейчас я попытался использовать следующий запрос Java:

db.getCollection("users").find(new BasicDBObject(), new BasicDBObject("friends", new BasicDBObject("$slice", N))).next();

Как и ожидалось, я получил объект User со срезом массива друзей.Но он также возвращает все остальные поля в классе User (здесь не показаны), которые я не хочу.

Есть идеи, как заставить его отправлять обратно только массив друзей?

++ Cheers

1 Ответ

2 голосов
/ 08 июня 2011

Попробуйте добавить "friends: true" следующим образом:

db.getCollection("users").find(new BasicDBObject(), new BasicDBObject("friends", new BasicDBObject("$slice", N)).append("friends", true)).next();

В нем должны быть поля _id и friends.

...