2016-07-05 16 views
1

このアプローチに基づいてMongoDBの別のコレクションに文書を移動しようとしていますSaving Mongoose object into two collectionsMongooseを使って別のコレクションに文書を移動する

この例では、2つの新しいオブジェクトを作成する方法を示しています。私の目標はコレクションを別のコレクションに移動することです。

もう少し具体的にする:ドキュメントでは、最終的に完了するタスクのリストがあり、このドキュメント内で別の配列に移動する必要があります。しかし、私は未完了のすべてを照会することができる必要があり、これは2つのコレクションで可能になるはずです。

答えて

1

だからあなたは、あなたがこの

mongoose.model('First').findOne({ _id: id }, function(err, result) { 

    let swap = new (mongoose.model('Second'))(result) 
    /* you could set a new id 
    swap._id = mongoose.Types.ObjectId() 
    swap.isNew = true 
    */ 

    result.remove() 
    swap.save() 

    // swap is now in a better place 

}) 
+0

ように私は、このソリューションが動作するように取得することはできませんよ」日を入れ替えることができます二回

let ChangeSchema = new Schema({ title: String, version: Number }) mongoose.model('First', ChangeSchema) mongoose.model('Second', ChangeSchema) 

スキーマを登録する必要があります。 'VersionError:idの一致する文書が見つかりませんでした。58b1512b8f361b717254fa59"ほとんど無意味なことに、マニュアルを手動でコレクションに挿入すると、そのようなエラーは発生しませんでした。 id部分に関するステップがありません。誰でもこのソリューションに詳細を追加できますか? – stuffyjoelab

+0

@stuffyjoelab最初に切り替えるための文書が必要です。 'idの一致する文書が見つかりません" 58b1512b8f361b717254fa59 "'は彼のIDを持つ文書がないことを示します。 – arcs

+0

少し遅れますが...スキーマの '_id'プロパティが' String'型に設定されていない限り、mongooseは 'ObjectId'を期待します。あなたのidが文字列で、mongooseがオブジェクトidを期待している場合は、 'mongoose.Types.ObjectId(id)'を使用して、必要なら 'mongoose.Types.ObjectId.isValid(id)'で事前に検証してください – Ben

関連する問題