如何使用字符串mongodb将作为字符串的字段更新为数组

时间:2019-06-13 04:17:14

标签: mongodb

有时将数据另存为字符串而不是字符串数组。现在有一些记录的值为:

users: "someuser@gmail.com"

但是应该是:

users: ["someuser@gmail.com"]

在MongoDB中是否可以更新此内容?

这是一个开始,但我不想丢失该字段中的数据。我仍然需要该信息,就在一个数组内:

db.users.update({users: {$type: 2}, {$set: {users: {$type: 4}})

1 个答案:

答案 0 :(得分:2)

您可以使用$out修改现有集合:

db.collection.aggregate([
    {
        $addFields: {
            users: { $cond: [ { $eq: [ { $type: "$users" }, "string" ] }, [ "$users" ], "$users" ] }
        }
    },
    {
        $out: "collection"
    }
])