MongoDB-字符串到ObjectID并创建新集合 db.firmalar.find().forEach(函数(obj){ 对于(var i=0;i

MongoDB-字符串到ObjectID并创建新集合 db.firmalar.find().forEach(函数(obj){ 对于(var i=0;i,mongodb,aggregation-framework,mongodb-shell,Mongodb,Aggregation Framework,Mongodb Shell,我想将“Firmalar”集合中每个文档中的字符串字段“obj.osgbIdleri”保存为ObjectId字段。我想我可以使用“聚合”来实现这一点。但是当使用“聚合”时,我不能返回foreach中的每个对象。我想在创建新集合时创建“firmaId.id”和“firmaId.osgbIdleri.id(ObjectID)”。(代表OP发布) db.firmalar.mapReduce( 函数(){ for(var i=0;i

我想将“Firmalar”集合中每个文档中的字符串字段“obj.osgbIdleri”保存为ObjectId字段。我想我可以使用“聚合”来实现这一点。但是当使用“聚合”时,我不能返回foreach中的每个对象。我想在创建新集合时创建“firmaId.id”和“firmaId.osgbIdleri.id(ObjectID)”。

(代表OP发布)

db.firmalar.mapReduce(
函数(){
for(var i=0;i
(代表OP发布)

db.firmalar.mapReduce(
函数(){
for(var i=0;i
db.firmalar.find().forEach(function(obj) {
    for( var i = 0; i < obj.osgbIdleri.length; i++){ //ObjectId ARRAY
        obj.osgbIdleri[i] = ObjectId(obj.osgbIdleri[i]);
    }  
  //out:result (firmaId.id & firmaId.osgbIdleri.id(ObjectId))
});
db.firmalar.mapReduce( 
       function() { 
           for( var i = 0; i < this.osgbIdleri.length; i++){
                this.osgbIdleri[i] = ObjectId(this.osgbIdleri[i]);
            }  
           emit(this._id, this.osgbIdleri); }, 

       function(key, values) {return value}, {  
          query:{},  
          out:"firmalarId" 
       }
    ).find()