有时将数据另存为字符串而不是字符串数组。现在有一些记录的值为:
users: "someuser@gmail.com"
但是应该是:
users: ["someuser@gmail.com"]
在MongoDB中是否可以更新此内容?
这是一个开始,但我不想丢失该字段中的数据。我仍然需要该信息,就在一个数组内:
db.users.update({users: {$type: 2}, {$set: {users: {$type: 4}})
答案 0 :(得分:2)
您可以使用$out修改现有集合:
db.collection.aggregate([
{
$addFields: {
users: { $cond: [ { $eq: [ { $type: "$users" }, "string" ] }, [ "$users" ], "$users" ] }
}
},
{
$out: "collection"
}
])