代码之家  ›  专栏  ›  技术社区  ›  jbassking10

在Mongo3.4中重命名数组文档

  •  0
  • jbassking10  · 技术社区  · 7 年前

    给定以下文档,我想将“Doc”重命名为“Doc”。我想也许我可以用$rename在一个forEach,但没有这样的运气。

    db.getCollection('Docs').find({}).forEach(
    function(doc){        
        doc.history.forEach(function(d2){                        
            var id = d2._id
           db.collection.update(d2, {$rename:{"Doc": "doc"}});
           print(d2);
        })                
    }
    )
    
    
    {
    "_id": "ObjectId(\"5b85c223e959480ea8b2c6d2",
    "history"[{
            "Doc": {},
            "Doc": {},
            "Doc": {}
        }
    ]
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   jbassking10    7 年前

    这最终对我有用:

    db.Docs.find({ 'history': { $exists: 1 } }).snapshot().forEach(function(item)
    {      
        item.history.forEach(function(item2){        
            item2.doc = item2.Doc;
            delete item2["Doc"];
            print(item2);
        })
    
        db.Docs.save(item);
    });