2017-12-20 15 views
0

私は2つのコレクション、子供、クラスを持つデータベースを持っているとしましょう。各子供は1つのクラスに属します。マニュアルIDをmongoDBのObjectID _idに置き換えるにはどうすればいいですか?

各クラスには以前に作成された整数IDがあります。

kid.class_idを、クラスの(整数)IDではなく、クラスの(オブジェクトID)_idに置き換えたいとします。

ただし、以下のスクリプトを実行すると、class_idがclass.idでリセットされません。古い整数IDのままです。

mongoose.connect(someMongodbUri, { useMongoClient: true }, (err, db) => { 

    let kidsCount = 0; 

    db.collection('kids').find({}).each((err, kid) => { 

     kidsCount++; 

     db.collection('classes') 
     .findOne({ id: kid.class_id }) 
     .then((class, err) => { 

      let newClassId = class._id; 

      db.collection('kids').updateOne(
      { _id: kid._id }, 
      { $set: { class_id: newClassId } } 
     ).then(() => { 
       console.info('Updated', kid.class_id); 
       kidsCount--; 
       if (kidsCount === 0) { db.close(); } 
      }); 
     }); 
    }); 
    }); 

何か不足していますか?あなたが提供できるお手伝いをありがとう!

答えて

0

整数IDをオブジェクトIDに変換できます。

var ObjectId = require('mongodb').ObjectID; 
let newClassId = ObjectId(class._id); 

わかりませんが、これは私にとってはうってつけの方法かもしれません。

関連する問題