提问者:小点点

如何在$match聚合MongoDB上分配动态键?


我想根据下面给出的条件动态分配$match键:

let memberField = filter == "Agent" ? "user" : "admin";  // memberField = "user"
  
db.aggregate(
            [
              {
                $match: {
                  memberField: "12345"
                }
              }
            ]
          )

我不会得到空洞的回应。

但是如果我像下面给出的那样将硬编码键传递给$match:

db.aggregate(
        [
          {
            $match: {
              user: "12345"
            }
          }
        ]
      )

这里我得到了各自的结果。

那么如何传递动态键呢?


共1个答案

匿名用户

请查看计算属性名称

db.aggregate([
  {
    $match: {
      [memberField]: "12345"
    }
  }
])