如何在使用官方c#驱动程序插入后从mongo读回自动生成的ID?

通过官方c#驱动程序将新文档插入
mongodb之后,如何立即读回生成的_id,以便将其用作其他集合的“外来”键?我知道在sql server中我可以立即读回新插入行的标识列值,所以我需要mongodb中的类似功能.

由于mongo生成的_id不是对象的实际成员,假设您需要对通用bsondocument执行某些操作?

最佳答案 您可以使用findAndModify命令进行upsert以实现相同的效果,而不是通过生成自己的id来完成相同的工作. (为什么麻烦,有一个很好的理由10gen决定使用的方案 – 它可以轻松分片)

findAndModify命令允许您查找或升级(如果它不存在则创建)文档并返回该文档.

一般形式如下:

db.runCommand( { findAndModify : <collection>, <options> } )

你可以阅读更多关于它here.

除了upsert选项之外,您还希望使用new,以便返回新创建的对象.

点赞