mongodb中 如何比较嵌入式文档数组中值

我现在有这样一个 mogodb 嵌入式文档数组

_id:6131aa5b367318e2df14b988
title:"功能更新清单"
author:Object
    _id:607edeb4b1e1bea9acb5af38
    email:"frmachao@126.com"
group:Object
    _id:612d00a43c52975d4ade10d4
    desc:"开发"
    state:"public"
    name:"开发小组"
    members:Array
        0:Object
            _id:612d00a43c52975d4ade10d5
            role:"admin"
            user:607edeb4b1e1bea9acb5af38

我想在 aggregate 聚合操作内通过比较 author._id == group.members.user 的值,向文档添加一个新字段 can_edit

 Article.aggregate([
  {
     $addFields: {
          can_edit: {
                        $eq: ["$group.members.user", "$author._id"],
                      },
                }
  }
])

可是我得到的 can_edit 值始终是 false,我确定在我的测试数据中 author._id 的值和group.members.user 是相同。

期望返回的文档结构:

_id: 6131aa5b367318e2df14b988
can_edit: true
title: "功能更新清单"
author:Object
    _id: 607edeb4b1e1bea9acb5af38
    email: "frmachao@126.com"
group:Object
    _id: 612d00a43c52975d4ade10d4
    desc: "开发"
    state: "public"
    name: "开发小组"
    members:Array
        0:Object
            _id: 612d00a43c52975d4ade10d5
            role: "admin"
            user: 607edeb4b1e1bea9acb5af38

有什么方法可以满足我的需求?有人知道该怎么样去做吗,我将非常感谢你🙏。

阅读 2.1k
2 个回答
✓ 已被采纳新手上路,请多包涵

问题已解决:stackoverflow 上面,一位热心的马来西亚程序员帮我解决了问题

因为你的 group.members 是个数组啊……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏