$ toString在mongoDB 3.6.3版中将'_id'从ObjectId()类型转换为字符串的替代方法?

达曼·贝尔

我正在执行一个聚合,该聚合基于$ match条件使用$ lookup进行联接以加入3个集合,该条件涉及将'_id'值列表与我在python中已经可用的'_id'值列表匹配到ObjectId(“”) mongoDb中存在的版本。在版本4.0中,$ toString是可行的方法,但是我找不到适合的替代方法

criteria = [
        {
            '$project': {
                '_id': {
                    '$toString': '$_id'
                }
            }
        },
        {
            '$lookup': {
                'from': 'clients',       # other table name
                'localField': 'clientId',   # name of users table field
                'foreignField': '_id',  # name of userinfo table field
                'as': 'client_info'  # alias for userinfo table
            }
        },
        # $unwind used for getting data in object or for one record only
        {'$unwind': '$client_info'},
        # Join with job_info table
        {
            '$lookup': {
                'from': 'jobs',
                'localField': 'jobId',
                'foreignField': '_id',
                'as': 'job_info'
            }
        },
        {'$unwind': "$job_info"},
        # conditions willl go here
        {
            '$match': {
                '$and': [{'_id': {'$in': pipline_array}}]
            }
        },
        {
            '$project': {
                '_id': 1,
                'client_name': "$client_info.name",
                'job_name': "$user_role.name",
            }
        }
    ]
谁-假面真灵魂

如果您希望聚合查询本身在运行中立即进行转换stringObjectId()反之亦然,那么您需要使用MongoDB版本> = 4.0-您将在其中使用运算符$toObjectId()$toString()进行转换。但是,如果您的MongoDB版本是<,4.0那么您将别无选择,只能转换和更新一个集合的所有文档中的字段以与另一集合的字段类型匹配。

但是您的问题有所不同,因为您要传递一个字符串列表并将其与_idusing进行比较$in,因此您可以将其转换stringObjectId()&pass-in作为输入,如下所示:

from bson.objectid import ObjectId


pipline_array = ['5d76b2c847c8d3000184a090', '5d7abb7a97a90b0001326010']
pipline_array_converted = []


for i in pipline_array:
    pipline_array_converted.append(ObjectId(i))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将字符串“3/6/2019 3:40:19 PM”正确转换为 Laravel/Eloquent 日期时间类型?

来自分类Dev

python3:将字符串转换为类型

来自分类Dev

使用Mongoose在MongoDB中将字符串字段转换为ObjectID字段

来自分类Dev

在 Python 3 中将字节转换为十六进制字符串的正确方法是什么?

来自分类Dev

在JavaScript中将6 * 6数组转换为3 * 3数组的问题

来自分类Dev

在任何键中将mongodb Id保存为字符串与另存为ObjectId

来自分类Dev

从字符串转换为MongoDB ObjectID

来自分类Dev

Spring在MongoDB中将日期另存为字符串-无法从字符串类型转换为日期类型

来自分类Dev

在Javascript中将列表[[1,2,3]`转换为字符串'{1,2,3}'

来自分类Dev

如何在Node.js MongoDB本机驱动程序中将字符串转换为ObjectId?

来自分类Dev

如何在 Python 中将 [{'id':1'}] 之类的字符串转换为列表 [{'id':1'}] 数据类型?

来自分类Dev

Swift 3:将字符串类型的字典转换为 Int

来自分类Dev

在PHP中将“ 1 + 2”字符串转换为3的整数

来自分类Dev

在ActionScript 3中将键代码转换为字符串

来自分类Dev

如何在Unity3D中将类对象转换为JSon字符串?

来自分类Dev

在D3 Javascript中将字符串转换为数组名称

来自分类Dev

ValueError:无法在python 3中将字符串转换为float:''

来自分类Dev

如何在d3js中将字符串转换为数字

来自分类Dev

在Python 3中将映射函数的输出转换为字符串

来自分类Dev

在ActionScript 3中将键代码转换为字符串

来自分类Dev

如何在Unity3D中将类对象转换为JSon字符串?

来自分类Dev

如何在Symfony 3中将对象数组转换为字符串?

来自分类Dev

在 Python 3 中将逗号分隔的字符串转换为 Numpy 数组

来自分类Dev

如何在swift 3中将日期字符串转换为日期

来自分类Dev

在swift 3中将“任何”数组转换为字符串

来自分类Dev

在python 3中将字符串转换为数字列表

来自分类Dev

ValueError:无法在 Python 3 中将字符串转换为浮点错误

来自分类Dev

如何在python 3中将字节转换为字符串?

来自分类Dev

在MongoDB中将字符串转换为日期

Related 相关文章

  1. 1

    如何将字符串“3/6/2019 3:40:19 PM”正确转换为 Laravel/Eloquent 日期时间类型?

  2. 2

    python3:将字符串转换为类型

  3. 3

    使用Mongoose在MongoDB中将字符串字段转换为ObjectID字段

  4. 4

    在 Python 3 中将字节转换为十六进制字符串的正确方法是什么?

  5. 5

    在JavaScript中将6 * 6数组转换为3 * 3数组的问题

  6. 6

    在任何键中将mongodb Id保存为字符串与另存为ObjectId

  7. 7

    从字符串转换为MongoDB ObjectID

  8. 8

    Spring在MongoDB中将日期另存为字符串-无法从字符串类型转换为日期类型

  9. 9

    在Javascript中将列表[[1,2,3]`转换为字符串'{1,2,3}'

  10. 10

    如何在Node.js MongoDB本机驱动程序中将字符串转换为ObjectId?

  11. 11

    如何在 Python 中将 [{'id':1'}] 之类的字符串转换为列表 [{'id':1'}] 数据类型?

  12. 12

    Swift 3:将字符串类型的字典转换为 Int

  13. 13

    在PHP中将“ 1 + 2”字符串转换为3的整数

  14. 14

    在ActionScript 3中将键代码转换为字符串

  15. 15

    如何在Unity3D中将类对象转换为JSon字符串?

  16. 16

    在D3 Javascript中将字符串转换为数组名称

  17. 17

    ValueError:无法在python 3中将字符串转换为float:''

  18. 18

    如何在d3js中将字符串转换为数字

  19. 19

    在Python 3中将映射函数的输出转换为字符串

  20. 20

    在ActionScript 3中将键代码转换为字符串

  21. 21

    如何在Unity3D中将类对象转换为JSon字符串?

  22. 22

    如何在Symfony 3中将对象数组转换为字符串?

  23. 23

    在 Python 3 中将逗号分隔的字符串转换为 Numpy 数组

  24. 24

    如何在swift 3中将日期字符串转换为日期

  25. 25

    在swift 3中将“任何”数组转换为字符串

  26. 26

    在python 3中将字符串转换为数字列表

  27. 27

    ValueError:无法在 Python 3 中将字符串转换为浮点错误

  28. 28

    如何在python 3中将字节转换为字符串?

  29. 29

    在MongoDB中将字符串转换为日期

热门标签

归档