gpt4 book ai didi

java - 使用 objectID 对嵌套对象进行 MongoDB java 驱动程序查询不起作用

转载 作者:行者123 更新时间:2023-11-30 02:57:56 26 4
gpt4 key购买 nike

我有以下 mongodb 文档结构

{
"_id": ObjectId("571530da41995a703faaf55b"),
"project_name": "abc",
"status": "new",
"cluster": "",
"sku": {
"_id": "57152f7941995a703faaf559",
"name": "temp",
"distribution": "apache",
"creation_date": "2016-04-18T19:02:46.595Z",
"user_id": "570784b1682d25f45b64ed51",
"__v": 0,
"services": []
}
}

我想查找给定 sku._id 的项目信息。为此,我正在使用以下代码。

String  getProjectIDforSku(String skuID ) {
ObjectId id = new ObjectId(skuID);
BasicDBObject query = new BasicDBObject("sku", new BasicDBObject("_id", skuID));
DBObject obj = getCollection("deployment", "projects").findOne(query);
if (obj != null) {
var jsonString = Json.parse(obj.toString());
return jsonString;
} else
return null;
}

当我调用此函数时,我收到 null 而不是有效的 json 字符串。谁能指导我哪里错了?谢谢

最佳答案

改变BasicDBObject 查询 = new BasicDBObject("sku", new BasicDBObject("_id", skuID));BasicDBObject 查询 = new BasicDBObject("sku._id",skuID);

原因是,在第一个中,您将 sku 与只有一个字段 _id 的对象进行比较(事实并非如此,该对象还有其他字段),而第二个仅与 sku 对象中的 _id 字段匹配.

关于java - 使用 objectID 对嵌套对象进行 MongoDB java 驱动程序查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36747148/

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