我在mongoDB
中有以下文件。我想将currentVisit
数据类型更改为integer
{
"_id" : ObjectId("5385e14f5caf98cc0712931c"),
"location" : {
"language" : null,
"country" : "null",
},
"request" : [
{
"currentVisit" : "1401292066",
"lastVisit" : "1401292066",
"visitedTime" : "1401282894"
}
]
}
我曾尝试以下方法,但它无效。
db.visits.find().forEach( function (x) { x.request.currentVisit = parseInt(x.request.currentVisit); db.visits.save(x);});
任何建议都将不胜感激
答案 0 :(得分:1)
你很近但你需要循环内部数组
db.visits.find().forEach(function (x) {
for ( var i=0; i <= x.request.length; i++ ) {
x.request[i].currentVisit = parseInt(x.request[i].currentVisit);
}
db.visits.save(x);
});
你可能真的想要所有这些:
db.visits.find().forEach(function (x) {
for ( var i=0; i <= x.request.length; i++ ) {
x.request[i].currentVisit = parseInt(x.request[i].currentVisit);
x.request[i].lastVisit = parseInt(x.request[i].lastVisit);
x.request[i].visitedTime = parseInt(x.request[i].visitedTime);
}
db.visits.save(x);
});
答案 1 :(得分:1)
您的request
字段是一个数组,因此您应该迭代它以更改值&#34; currentVisit&#34;每个子文档中的字段:
db.visits.find().forEach( function (doc) {
doc.request.forEach(function(subdoc) {
subdoc.currentVisit = parseInt(subdoc.currentVisit);
});
db.visits.save(doc);
});