根据嵌套对象字段的长度查找所有文档
Posted
技术标签:
【中文标题】根据嵌套对象字段的长度查找所有文档【英文标题】:Find all document based on length of nested object field 【发布时间】:2021-11-15 18:26:48 【问题描述】:我有以下文件:
usera:
data:
order1: "data",
order2: "data2",
order3: "data3",
,
userb:
data:
order1: "data",
order2: "data2",
,
userc:
data:
order1: "data",
order3: "data3",
,
userd:
data:
order1: "data",
order2: "data2",
order3: "data3",
,
usere:
data:
order1: "data"
我想查询只有order1
而没有其他order2
或其他文档可用的文档。
例如只有usere
是一个有order1的文档,其他的都不存在。
无论如何,我可以在哪里检查我的 data
字段的长度,如果它是 1 并且 order1
$exists
是 true
【问题讨论】:
【参考方案1】:我认为下面的代码就是你要找的
db.collection.aggregate([
"$match":
"$expr":
"$eq": [
"$let":
"vars":
"orderElem":
"$objectToArray": "$user.data"
,
,
"in": "$$orderElem.k"
,
,
[
"order1"
],
],
,
])
MongoPlayground Example
【讨论】:
以上是关于根据嵌套对象字段的长度查找所有文档的主要内容,如果未能解决你的问题,请参考以下文章