MongoDB查询:获取p1.lastName不等于l1.lastName的所有文档
MongoDB 查询满足 p1.lastName 不等于 l1.lastName 的文档
原始文档
[ { "p1": { "lastName": "Manson" }, "l1": [ { "lastName": "Manson" } ] }, { "p1": { "lastName": "revah" }, "l1": [ { "lastName": "Manson" } ] } ]
查询需求
筛选出所有满足 p1.lastName 与 l1 数组中元素的 lastName 不相等的文档。
查询语句
使用 $expr 配合 $ne 操作符实现文档内字段的比较,这里针对 l1 数组取首个元素进行判断:
db.collection.find({ $expr: { $ne: ["$p1.lastName", { $first: "$l1.lastName" }] } })
若确定 l1 数组始终仅包含一个元素,也可直接通过数组索引访问:
db.collection.find({ $expr: { $ne: ["$p1.lastName", "$l1.0.lastName"] } })
预期返回结果
{ "p1": { "lastName": "revah" }, "l1": [ { "lastName": "Manson" } ] }
内容的提问来源于stack exchange,提问作者Liron revah
相关产品推荐
相关产品推荐

