我的mongo集合中有一个文档如下:
{
"timestamp": 1460442540,
"page": "home",
"misc": {
"color": "red",
"light": "off"
}
}
我想要做的是在页面上满足特定条件时返回misc.color的值。
这就是我所拥有的:
//find my query match
Document value = mongoDBService.getCollection(collectionName)
.find(eq("page", "home")).first();
//prints json described above
LOG.info(value.toString());
//prints "misc" subdocument
LOG.info(value.get("misc").toString());
//null pointer
LOG.info(value.get("misc.color").toString());
有什么方法可以处理我所缺少的点符号吗?理想情况下,我希望此查询是动态的,以便它可以处理点表示法值和更高级别的值。
我正在使用mongodb-driver 3.4.2。
最佳答案
您可以将代码更新到下面。
Document value = mongoDBService.getCollection(collectionName)
.find(eq("page", "home")).first();
LOG.info(value.get("misc", Document.class).getString("color"));