2015-04-07 46 views
1

當對象的類型發生變化時,我陷入了困境。如何將字符串轉換爲MongoDB中的數組?

我如何轉換這一點:

{ 
"_id" : NumberLong(257), 
"address" : "street Street, house 50, appartment 508, floor 5" 
} 

這樣:

{ 
"_id" : NumberLong(257), 
"userAddressList" : [{ 
     "street" : "Street", 
     "house" : "50", 
     "building" : "", 
     "appartment " : NumberLong(508), 
     "entrance" : NumberLong(0), 
     "floor" : NumberLong(5), 
     "intercom" : "" 
    }] 
} 

使用蒙戈的殼呢?

我需要轉換大約350個條目,希望它可以通過腳本完成。

回答

1

你可以試試這個:

db.collection.find().forEach(function (x) { 
    lines = x.address.split(","); 
    obj = {}; 
    userAddressList = []; 
    lines.forEach(function (address){ 
     addressArray = address.replace(/^\s\s*/, '').replace(/\s\s*$/, '').split(" "); 
     obj[addressArray[0]] = !isNaN(parseInt(addressArray[1])) ? parseInt(addressArray[1]) : addressArray[1];   
    }); 
    obj.building = ""; 
    obj.intercom = ""; 
    userAddressList.push(obj); 
    x.userAddressList = userAddressList; // convert field to string 
    db.collection.save(x); 
}); 
+1

謝謝!爲我工作!由於缺乏我的聲譽,無法向您提出評論,但在我獲得足夠的評價後即可完成評論。再次感謝!你非常有幫助! –

0

可以在更新使用foreach這樣

db.test.find({ }).forEach(function (x) {
x.userAddressList = x.address.split(" "); db.test.save(x); });

相關問題