5

_idを除くすべてのフィールドを更新する必要があります。16個のフィールドを手動で更新することは避けたい...すべての新しいフィールドはBsonDocument内に保存されます

アイデアをありがとう

4

2 に答える 2

4

@Philippが示唆したように、これを行う方法があります。実際にsave関数 ( http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTutorial-Save%3CTDocument%3Emethod ) を使用して、データベース側で彼の言うことを実行できます。

次のドキュメントがあるとします。

{
    _id: {},
    d: 1
}

そしてそれは_idすでに存在し、前のドキュメントをこのドキュメントに置き換えます。

きちんとね?

于 2013-01-15T13:50:42.797 に答える
1

私があなたを正しく理解したとき、あなたは新しいデータを含む文書 B を持っており、文書 A を完全に置き換えたいと考えています。

その場合、ドキュメント B の _id フィールドをドキュメント A の _id フィールドの値に明示的に設定するだけで済みます。ドキュメント B を保存すると、データベース内のドキュメント A が置き換えられます。

保存されたドキュメントが既存のドキュメントの ID を持つ場合、データベースはそれを新しいドキュメントとしてではなく、そのドキュメントの新しいバージョンとして扱います。

于 2013-01-15T13:13:28.293 に答える