如何改变数据类型的嵌入式对象- mongoDB
How to change the data type of embedded object - mongoDB?
我在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);});
如有任何建议,不胜感激
你很接近了,但是你也需要循环内部数组
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);
});
您的request
字段是一个数组,因此您应该遍历它以更改每个子文档中的值"currentVisit"字段:
db.visits.find().forEach( function (doc) {
doc.request.forEach(function(subdoc) {
subdoc.currentVisit = parseInt(subdoc.currentVisit);
});
db.visits.save(doc);
});
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 有可能过滤来自嵌入式YouTube的声音吗
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- 解析带有嵌入式数组的JSON对象,方法
- 嵌入式Rhino和匿名js对象
- VS 2013 嵌入式对象中JavaScript的Web断点
- 在嵌入式站点上使用javascript?(iframe,对象)
- 正确返回具有嵌入式 JS 函数的 JSON 对象
- 如何将 Jquery 对象从父 iframe 注入到嵌入式 iframe
- Javascript - 检查传入对象的嵌入式数组值
- Javascript:避免嵌入式函数多次调用对象
- 如何验证和更新mongoDB Collection文档中的嵌入式对象
- 改变Firefox的嵌入式对象src问题(IE9或Opera没有问题)
- 如何改变数据类型的嵌入式对象- mongoDB