You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将按数组元素查询MongoDB文档的语句转为Java BSON Filter代码

MongoDB Shell 转 Java BSON Filter 实现代码

以下实现基于MongoDB Java Driver 4.x版本,和你给出的Shell查询逻辑完全等价:仅当geometry.coordinates字段的数组元素顺序、取值完全匹配指定数组时才返回对应文档。


前置依赖(Maven示例)

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>4.10.2</version>
</dependency>

核心代码

导入必要类

import com.mongodb.client.model.Filters;
import org.bson.conversions.Bson;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.FindIterable;
import org.bson.Document;

查询逻辑实现

// 1. 定义目标匹配数组
Double[] targetCoordinates = {19.045258, 49.804283};
// 2. 构建BSON查询过滤器,完全等价于原Shell查询条件
Bson filter = Filters.eq("geometry.coordinates", targetCoordinates);
// 3. 获取cache集合实例(需替换为你的实际数据库名)
MongoCollection<Document> cacheCollection = mongoClient.getDatabase("你的数据库名称").getCollection("cache");
// 4. 执行查询
FindIterable<Document> resultDocs = cacheCollection.find(filter);

// 遍历结果示例
for (Document doc : resultDocs) {
    System.out.println(doc.toJson());
}

补充说明

如果你的需求是匹配geometry.coordinates包含指定两个坐标、不要求元素顺序和是否有其他额外元素,可以替换过滤器为:

Bson filter = Filters.all("geometry.coordinates", 19.045258, 49.804283);

内容的提问来源于stack exchange,提问作者Adsumus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 20:33:02