【发布时间】:2012-03-19 16:31:33
【问题描述】:
我已经从 MSSQL 世界变成了 mongo,并且我有一个关于典型用例的未回答的问题。 (我在官方网站上没有找到有关它的信息)。 我觉得你们都做了这样的事情:
例如: 我想保护一些文件+元数据(文件名+文件长度)。
- "创建文档对象": var document = new MyDocument("file1.txt", 65536);
- “保存流”:var streamId = GridFS.Upload(myStream);
- “使用元数据链接流”:document.StreamId = streamId;
- “保存文档”:myDocumentCollection.Insert(document);
问题:
1) 因为没有事务,如果我的操作在步骤 2 之后失败,我应该如何处理这种情况 - 只有流本身。正确的处理方法是什么?数据库分片成 10 台服务器并祈祷它永远不会失败?创建后台服务来清理不一致的记录?
2)如何正确处理GridFS:删除document+stream,以容错方式重写stream?
3) 当我的操作需要更改几个对象时,如何处理?
【问题讨论】: