gpt4 book ai didi

java - Mongodb在java中查询嵌套文档

转载 作者:行者123 更新时间:2023-11-30 07:49:29 25 4
gpt4 key购买 nike

我是 Mongodb 新手。我在 mongodb 中有以下数据集。

{
"_id": {
"$oid": "563644f44b17ca12886440a9"
},
"data": [
{
"uid": 1,
"character": " ",
"unicode": 32,
"color": -7309587
},
{
"uid": 2,
"character": "!",
"unicode": 33,
"color": -8911704
},
{
"uid": 3,
"character": "\"",
"unicode": 34,
"color": -1778539
}

我正在尝试使用 _id 和字符从此字段检索颜色。我无法执行查询。

这是我尝试过的。

DBObject clause1 = new BasicDBObject("_id",new ObjectId(KEY1));  
DBObject clause2 = new BasicDBObject("data.character",text[i]);
BasicDBList or = new BasicDBList();
or.add(clause1);
or.add(clause2);
DBObject query = new BasicDBObject("$and", or);

此外,我在寻找在 mongodb-java 中查询 3.0.0+ api 的方法时遇到了很多问题。有人可以帮忙吗?

最佳答案

    MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
MongoDatabase db = mongoClient.getDatabase("testDB");
AggregateIterable<Document> iterable = db.getCollection("testCollection").aggregate(
asList(new Document("$unwind", "$data"), new Document("$match", (new Document("_id", new ObjectId(
"5636f106b2acf98ecb033b98")).append("data.character", " "))), new Document("$project",
new Document("data.color", 1).append("_id", 0))));

iterable.forEach(new Block<Document>()
{
@Override
public void apply(final Document document)
{
System.out.println(document.toJson());
}
});

更多详情请查看MongoDB Documentation .

关于java - Mongodb在java中查询嵌套文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33470892/

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