MongoDB的$查找 - 字符串转换为数字

时间:2019-01-31 15:54:16

标签: mongodb lookup

我需要使用我的两个集合进行一个简单的MongoDB $ lookup请求:

命令

{
   clientId: {type: 'String', default: null},
   reference: {type: 'String'}
}

客户

{
   _id: {type: 'Number', default: 0},
   name: {type: 'String', default: null}
}

如何使用简单的mongoDB查询做到这一点?

现在,我已经知道了:

db.commands.aggregate({
    $lookup: {
        from: 'clients',
        localField: 'clientId',
        foreignField: '_id',
        as: 'clientId'}
    },
});

但是clientId字段始终是一个空数组。我想我需要暂时将clientId字段转换为Number吗?

感谢帮助

1 个答案:

答案 0 :(得分:0)

使用$toInt,4.0版的新功能。

db.commands.aggregate([
  {$project: {clientId: { $toInt: '$clientId'}}},
  {
    $lookup: {
        from: 'clients',
        localField: 'clientId',
        foreignField: '_id',
        as: 'clientId'
    }
  }
]);