如何使用C#.Net中的InsertOneAsync将文档插入MongoDB并返回相同的文档或其ID

阿拉文

我正在编写一个通用方法,像数据访问层一样使用C#.Net将文档插入到MongoDB中。我的方法如下所示。这里的集合是从MongoDB检索的MongoCollection。

public async T Create(T entity){
await Collection.InsertOneAsync(entity);
}

我想返回插入的实体或其由MongoDB自动生成的ID。InsertOneAsync方法正在返回任务。我尝试如下进行更改。但是它的返回类型是无效的。

Collection.InsertOneAsync(entity).GetAwaiter().GetResult();

有没有一种方法可以使用InsertOneAsync方法获取ID或实体。我正在为C#使用MongoDB驱动程序。

米克尔

MongoDB中的ID是在客户端生成

如果文档未指定_id字段,则MongoDB将添加_id字段并在插入之前为文档分配唯一的ObjectId。大多数驱动程序会创建一个ObjectId并插入_id字段,但如果驱动程序或应用程序未创建,则mongod将创建并填充_id。

在这种情况下,您可以手动生成ObjectId并从方法中返回它们(使用ObjectId.GenerateNewId()),也可以返回整个对象,因为如果使用[BsonId]attribute,则MongoDB驱动程序会设置正确的_id值

public async Task<T> Create(T entity) where T:class
{
    await Collection.InsertOneAsync(entity);
    return entity;
}

并传递如下类型的参数:

public class MyClass
{
    [BsonId]
    public ObjectId Id { get; set; }
    //other properties
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用C#将图像插入pdf文档?

如何将Hashmap插入到MongoDB文档中?

仅当没有具有相同“键”:“值”对(MongoDB)的文档时,如何将子文档插入到数组字段中?

如何使用 C# 在 MongoDB 中创建带有子文档的文档

如何使用C#使用asp.net动态更新mongodb中相同ID的colums值

如何使用文档ID从mongoDB集合中删除文档?

使用 pymongo 在 MongoDB 中插入文档

如何在 Python 中使用自定义对象 ID 在 MongoDB 中插入文档

如何使用Spring数据将文档插入mongodb中的特定集合?

如何使用C#在活动文档中添加文本

使用动态数据类型字段的C#在MongoDB中插入和检索文档的问题

如何删除mongodb中group返回的文档?

如何使用C#在MongoDB中的嵌套子数组文档中查找元素

如何将文档值划分到同一个文档中,但是除数的键名在 MongoDB 中是相同的

如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

MongoDB:如何通过嵌套文档中的ID查找文档

如何使用C#驱动程序删除mongodb文档中的嵌套数组元素

如何使用C#驱动程序更新MongoDB数组中的子文档

C#MongoDB驱动程序:如何将新的子文档插入现有文档

MongoDB C#从ID列表中获取所有文档

使用Python将Pandas数据帧中的行作为单个文档插入mongodb集合中

使用Java将数组插入到mongoDB中的现有文档中

如何使用 JSON (OpenWeatherMap) 在 C# 中使用 API 文档

如果使用LoopBack从MongoDb的远程方法中不存在文档,如何插入文档

如何获取刚插入 MongoDB 的文档的 ID?(API)

在PyMongo中,如何找到文档的_id(如果找到),否则插入并获取插入的文档的_id

mongoDB c ++ 11驱动程序获取插入文档的ID

使用C#从mongoDB中的文档中选择所需的对象

使用mgo.v2将新对象插入mongodb中文档的Array Attribute中