如何在mongodb聚合管道中将字符串值转换为整数

bwitn5fc  于 2023-01-01  发布在  Go
关注(0)|答案(1)|浏览(188)

在我使用MongoDb数据库的NodeJs应用程序中,我有两个集合productsmarket_companies,这两个集合都有字段名hub_iddimensions,其中dimensions是对象字段。我创建了聚合管道,在两个集合中比较hub_iddimensions字段,但在这里比较的是hub_idproducts集合是integer,但在market_companies中是string,因此我没有得到所需的输出。
我想知道如何将market_companies集合中的字符串转换为整数。
下面是我的代码:

db.products.aggregate([
    {
    $lookup: {
      from: "market_companies",
      let: {
        hubId: "$hubId",
        dimensions: "$dimensions"
      },
      as: "companies",
      pipeline: [
        {
          $match: {
            $expr: {
              $and: [
                {
                  $eq: [
                    "$hubId", // How to convert this into Integer
                    "$$hubId"
                  ]
                },
                {
                  $setEquals: [
                    {
                      "$objectToArray": {
                        $ifNull: [
                          "$dimensions",
                          {}
                        ]
                      }
                    },
                    {
                      "$objectToArray": {
                        $ifNull: [
                          "$$dimensions",
                          {}
                        ]
                       }
                     }
                   ]
                 }
               ]
             }
           }
         },
       ]
      }
     }
    ])

有人让我知道任何帮助感激。

k97glaaz

k97glaaz1#

您可以使用$toInt运算符执行此操作:

{
  $eq: [
    { $toInt: "$hubId" },
    "$$hubId"
  ]
},

相关问题