Mongoose-插入两个集合:一个是ID依赖的集合



我有一个对象数组,我想插入我的DB:

        tracks = [new Track({name : "myname1"}), new Track({name : "myname2"})]
        Track.collection.insert(tracks, {}, function(err, tracks){   
             console.log('err', err);
        }

但是,即使数组中有2个对象,insert()方法也会抛出一个错误:

[RangeError: Maximum call stack size exceeded]

(创建了"跟踪"文档,但其中没有任何内容。)

编辑Mongoose-RangeError:超过最大调用堆栈大小解决了第一个问题,但没有解决我真正的问题:

当您从Model创建一个对象时,您可以获得_id,我用它来创建另一个对象。但是不可能插入Mongoose对象的集合,因为问题已经解决:您必须仅使用数组JSON对象

data.items.forEach(function(item,index){
    tracks.push(new Track({name : "myname1"}) );
    posts.push(new Post({trackId : track._id}) );
}
Track.collection.insert(tracks, {}, function(err, tracks){   
         console.log('err', err);
    }

我找到的解决方案是创建自己的唯一Id,而不是获取猫鼬对象的Id。。。并使用JSON对象:

data.items.forEach(function(item,index){
    tracks.push({name : "myname1"}) ); //name is unique
    posts.push({trackId : track.name) );
}
Track.create(tracks, function(err){   
         console.log('err', err);
}