【问题标题】:Mongo java driver - retrieve slice of array without any other fieldMongo java驱动程序 - 检索没有任何其他字段的数组切片
【发布时间】:2026-02-07 04:25:01
【问题描述】:

我有一个名为 user 的类,可以简化为:

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

它存储在一个名为 users 的 mongo 集合中。我正在尝试检索朋友数组的前 N ​​个元素,没有类中的任何其他内容。

现在,我尝试使用以下 java 查询:

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

正如预期的那样,我得到了一个带有朋友数组切片的用户对象。但它也会返回 User 类中的所有其他字段(此处未显示),这是我不想要的。

知道如何强制它只发回朋友数组吗?

++干杯

【问题讨论】:

    标签: java mongodb mongo-java


    【解决方案1】:

    尝试像这样添加“friends: true”:

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

    它应该有 _id 和 friends 字段。

    【讨论】:

      最近更新 更多