如何解决如何使用聚合框架比较两个其他数组,从而获得一个数组?
如果说我得到了这个集合,我应该如何在MongoDB中构建管道:
[
{_id: 1,field: "somevalue",array: ["123","abc","456","def"]},{_id: 2,array: ["zxc","vbn","jkl"]},{_id: 3,array: ["fgh","asd","def"]}
]
我想在新字段中接收与当前数组中的值匹配的新值数组吗?
让我们说我得到了一个我想和它一起使用的数组:
[ "abc","456"]
所以我希望收到这个:
[
{_id: 1,"def"],myNewArray: ["abc","456"]},"jkl"],myNewArray: ["abc"]},myNewArray: ["456"]}
]
我究竟该如何构建管道来接收此消息?
解决方法
您可以简单地使用$setIntersection运算符将仅元素保留在数组参数中。
db.collection.aggregate([
{
"$addFields": {
"newArray": {
$setIntersection: [
[
"abc","456"
],"$array"
]
}
}
}
])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。