我有下面的mongoclient查询:
db = db.getSiblingDB("test-db");
hosts = db.getCollection("test-collection")
db.hosts.aggregate([
{$match: {"ip_str": {$in: ["52.217.105.116"]}}}
]);
它输出以下内容:
{
"_id" : ObjectId("..."),
"ip_str" : "52.217.105.116",
"data" : [
{"ssl" : {"cert" : {"expired" : "False"}}}
]
}
我尝试构建查询,使其根据ssl.cert.expired字段的值返回布尔值True或False。虽然我不太确定如何实现。我已经研究了$lookup和$where操作符,但还不太熟悉在mongo中查询嵌套对象。
1条答案
按热度按时间6rvt4ljy1#
由于
data
是一个数组,为了获得嵌套expired
的(第一个)元素,您应该使用$arrayElemAt
并提供索引0来指示第一个元素。Demo @ Mongo Playgound