MongoDB,将字符串转换为列表

时间:2015-07-17 06:27:49

标签: javascript regex mongodb mongodb-query

我们有一个MongoDB来存储订单信息,现在,“item_list”是一个类似

的字符串
"item_list" : "[{\"item_id\":14243,\"price\":7500,\"quantity\":1},{\"item_id\":1424,\"price\":2500,\"quantity\":1}]"

这是一个字符串,如何将其转换为列表对象?

我希望它最终成像:

 "item_list" : [{item_id:14243,price:7500,quantity:1},{item_id:1424,price:2500,quantity:1]

2 个答案:

答案 0 :(得分:1)

看起来很乱。这应该是正确的。

您需要替换无效的JSON,然后img #pline

.parse()

发布,因为其他人都没有意识到JSON无效。

答案 1 :(得分:0)

将数据视为:

"item_list" : "[{\"item_id\":14243,\"price\":7500,\"quantity\":1},{\"item_id\":1424,\"price\":2500,\"quantity\":1}]"

您可以使用以下脚本更新所有文档:

db.collection.find().forEach(function(obj) {
    //var a = eval(obj.item_list); you can use eval also
    var a = JSON.parse(doc.item_list); 

    db.collection.update({
    "_id": obj._id
    }, {
    $set: {
        "item_list": a
    }
    });
});