gpt4 book ai didi

java mongodb - 获取数组长度而不下载所有数据

转载 作者:行者123 更新时间:2023-11-29 04:53:37 26 4
gpt4 key购买 nike

我正在使用 mongodb 为我的 java 程序存储数据,我有一个包含数组字段的集合,其中包含很多内容,但我只想获取长度,而不需要所有其他数据。

现在我用它来获取它:

((UUID[])document.get("customers")).length

我怎样才能让它不下载所有数组?

一个可能的答案是创建一个 int 来计算数组的插入和拉取,但这不是最干净的方法。

最佳答案

您正在寻找 aggregation framework 您可以在其中使用 $size 管道中的运算符,它计算并返回数组中项目的总数:

db.collection.aggregate([
{
"$project": {
"_id": 0, "customer_count": { "$size": "$customers" }
}
}
]);

Java 等价物:

DBObject projectFields = new BasicDBObject("_id", 0);
projectFields.put("customer_count", new BasicDBObject( "$size", "$customers" ));
DBObject project = new BasicDBObject("$project", projectFields);

AggregationOutput output = db.getCollection("collectionName").aggregate(project);

System.out.println("\n" + output);

关于java mongodb - 获取数组长度而不下载所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com