MongoDB控制台上重复的BinData字段

MongoDB控制台上重复的BinData字段,mongodb,Mongodb,我有一个这样的文档结构 doc { "_id": "customized str id" "data": "BinData(0,"base64String"); } db.test.find("_id":"1234-test").forEach( function(doc) { db.test.insert({_id":"1235-test"},{"data":doc.data}); } ); 我也试过了 db.test.find("_id":"123

我有一个这样的文档结构

doc {
   "_id": "customized str id"
   "data": "BinData(0,"base64String");
}

db.test.find("_id":"1234-test").forEach(
    function(doc) {
      db.test.insert({_id":"1235-test"},{"data":doc.data});
    }
);
我也试过了

db.test.find("_id":"1234-test").forEach(
    function(doc) {
      db.test.insert({_id":"1235-test"},{"data":new BinData(0,doc.data)});
      or db.test.insert({_id":"1235-test"},{"data":{"$binary":doc.data,"$type":0}});
    }
);
结果返回,二进制字段除外。 有没有办法将二进制字段复制到重复的文档中?
提前谢谢。

你有两件事做错了

首先,insert()接受一个参数,即要插入的文档。(您是否希望更新/升级?)因此您希望:

db.test.insert({_id":"1235-test", "data": doc.data})
其次,当数据来自文档时,它已经是二进制BSON类型,所以您不需要对其进行编码或将其包装为BinData或其他任何内容

> db.test.find({"_id": "1234-test"}).next().data
BinData(0,"base64String")
> typeof(db.test.find({"_id": "1234-test"}).next().data)
object
因此,要将其从一个文档复制到新文档:

db.test.find({"_id": "1234-test"}).forEach( function(doc) {
    db.test.insert({"_id": "1235-test" , "data": doc.data})
})

我的语法错了。谢谢你友好的回答。