mongodb - 将新字段添加到具有现有字段值的集合

标签 mongodb

我想向集合中添加一个新字段,并将新字段的值设置为现有字段的值。

具体来说,我想从这里开始:

# db.foo.findOne()
    {
        "_id"     : ObjectId("4f25c828eb60261eab000000"),
        "created" : ISODate("2012-01-29T16:28:56.232Z"),
        "..."     : ...
    }

到这里:

# db.foo.findOne()
    {
        "_id"      : ObjectId("4f25c828eb60261eab000000"),
        "created"  : ISODate("2012-01-29T16:28:56.232Z"),  
        "event_ts" : ISODate("2012-01-29T16:28:56.232Z"),  #same as created
        "..."      : ...
    }

(此集合中的新文档不会都有这种特殊的冗余,但我想对现有文档执行此操作)

最佳答案

function addEventTsField(){
    db.foo.find().forEach(function(doc){
         db.foo.update({_id:doc._id}, {$set:{"event_ts":doc.created}});
    });
}

从控制台运行:

addEventTsField();

关于mongodb - 将新字段添加到具有现有字段值的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9224841/

相关文章:

node.js - mongodb 聚合 $sum 返回额外的 float 字

windows - 使用 Microsoft VC (cl.exe) 2010 (10.0) Express 和 ActivePerl 5.12.4/32 构建 Perl/C 模块

node.js - 如何处理 Mongoose 中的 ENUM 值?

php - 将 MongoId 对象数组转换为字符串数组

c# - Primary 宕机,Secondary 现在是 Primary - 如何写入新的 Primary?

php - laravel 5.4 Neo4j、mongodb 和 mysql 的组合(混合数据库)

mongodb - Meteor collection.update foreach 使用文档中的数据进行更新

javascript - 为什么使用 Mongoose 将数据存储两次?

c# - mongodb c#如何使用BSON文档

python - 通过 Python 脚本使用 mongo --eval 命令时未评估