1

次のように簡略化できるuserというクラスがあります。

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

これは、usersと呼ばれるmongoコレクションに格納されます。クラスから他に何もせずに、friends配列の最初のN個の要素を取得しようとしています。

今、私は次のJavaクエリを使用してみました。

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

予想どおり、friends配列スライスを含むUserオブジェクトを取得します。ただし、Userクラス(ここには表示されていません)の他のすべてのフィールドも返しますが、これは不要です。

友達の配列だけを送り返すように強制する方法はありますか?

++乾杯

4

1 に答える 1

2

次のように「friends:true」を追加してみてください。

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

_idフィールドとfriendsフィールドが必要です。

于 2011-06-07T23:58:35.117 に答える