1

私は小さく保ちたいキューメカニズムを持っているので、キューに入れられたすべてのオブジェクトは、処理が完了した後、履歴と呼ばれる別のコレクションに移動され、そこで更新されなくなり、参照と情報のためだけに存在します。

_id を変更せずに、あるコレクションからオブジェクトを取得して削除し、別のコレクションに挿入することはできますか?

新しいオブジェクトに転送するスキーマに 2 番目の ID を作成することでこれを解決しましたが、_id を参照し続けたいと思います。

また、私が何かを見落としていて、キューイング メカニズムを高速に保つために 2 番目のコレクションは必要ないと思われる場合は、ぜひお知らせください。

これが私が現在行っている方法です(ステップとアンダースコアを使用)

`

            // moving data to a new process in the history collection
            var data = _.omit(process.toObject(), '_id');
            console.log("new history data", data);
            var history = new db.History(data);
            history.save(this.parallel());
            db.Queue.remove({_id : process._id }, this.parallel());

`

4

2 に答える 2

3

ドキュメントをあるコレクションから別のコレクションにコピー/移動しても、_id問題はありません。既に がある新しいドキュメントを作成すると_id、Mongoose/Mongo はそれを使用します。また、_id値はコレクション間ではなく、単一のコレクション内でのみ一意である必要があります。

于 2013-03-09T05:05:02.530 に答える