2013-01-15 41 views

回答

3

由于@菲利普暗示有一种方法可以做到这一点。你实际上可以使用save函数(http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTutorial-Save%3CTDocument%3Emethod),它会在数据库端执行他对你说的话。

所以,想象一下你的文件:

{ 
    _id: {}, 
    d: 1 
} 

_id已经存在,它会与此替换之前的文件。

整洁吧?

+1

使用是否危险?保存一般?我想,将一个任意的Id值插入到文档中并将其作为http PUT发送到服务器是相当容易的。如果不先检查是否存在现有文档,该操作最终可能会以POST的形式出现,但没有POST后方法的控制器逻辑。没有进一步的信息,我使用.Update和。用C#驱动程序替换。 –

+0

@Besrl这是一个很好的观点,它可以是相当危险的,你应该始终确保文档的_id被验证和检查你的应用程序逻辑,以及其他东西 – Sammaye

+0

也有'Update.Replace'构建器的情况下当你需要做更新时,例如乐观并发版本控制。 –

1

当我理解正确的话,你有新的数据和文档B您希望它完全替换文档A.

在这种情况下,您可以将文档B的_id字段明确设置为文档A的_id字段的值。然后保存文档B时,它将替换文档A在数据库中。

当保存的文档具有现有文档的标识时,数据库会将其视为该文档的新版本,而不是新文档。

相关问题