我的收藏中有以下文档
{
"_id" : ObjectId("53732dc386d78e446c73fbb3"),
"elig" : 18,
"tags" : {
"6" : "49.6",
"9" : "657"
},
"book" : {
"type" : "100",
"id" : "59598699"
}
}
如果您注意到,标签是键值对,键为数字形式(基本上是 FIX 消息、标签和值对)
我需要将 tags.6 从 String ("49.6") 更新为 Float (49.6)。
当我尝试将 book.type 从“100”更新为 100 时,它起作用了。下面工作。
db.coll.find().forEach(function(data) {
db.coll.update(
{_id:data._id},
{$set:{"book.type":parseFloat(data.book.type) }}
);
})
但是对于tags.6,:
db.coll.find().forEach(function(data) {
db.coll.update(
{_id:data._id},
{$set:{"tags.6":data.tags.6 }}
);
})
它给出了错误
2014-05-15T08:23:40.161+0100 语法错误:意外数字
我不能有数字作为键吗?
请让我知道如何更新。