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

安德鲁·雷耶斯

文件结构

public class Document:
{
   [BsonRepresentation(BsonType.ObjectId)]
   public String _id { get; set; }
   [BsonIgnoreIfNull]
   public List<Event> Events { get; set; }
}

public class Event
{
   [BsonRepresentation(BsonType.ObjectId)]
   public String _id { get; set; }
   [BsonIgnoreIfNull]
   public String Title { get; set; }
}

我想使用Document._id将新的子文档“事件”插入到现有文档中。我如何在csharp中做到这一点?

马赫迪

您可以按照以下步骤进行操作:

var id = ObjectId.Parse("5b9f91b9ecde570d2cf645e5"); // your document Id
var builder = Builders<MyCollection>.Filter;
var filter = builder.Eq(x => x.Id, id);
var update = Builders<MyCollection>.Update
    .AddToSet(x => x.Events, new MyEvent
    {
        Title = "newEventTitle",
        Id = ObjectId.GenerateNewId()
    });
var updateResult = await context.MyCollection.UpdateOneAsync(filter, update);

我对您的班级名称做了一些更改,如下所示:

public class MyCollection
{
    public ObjectId Id { get; set; }
    public List<MyEvent> Events { get; set; }
}

public class MyEvent
{
    public ObjectId Id { get; set; }
    public string Title { get; set; }
}

因为我想DocumentEvent并不好名字,但你可以改变他们回来。另外,请注意,Id属性的类型ObjectIdand not string

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从C#Mongodb强类型驱动程序中的文档中加载特定字段

如何使用Java驱动程序将文档与mongodb中的现有数组元素进行匹配

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

MongoDB C# 驱动程序:如何将 $in 运算符用于嵌套的嵌入式文档?

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

如何使用mongodb C#驱动程序获取子文档的集合?

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

C#Mongodb驱动程序-如何在位置0的数组中插入元素

C#MongoDB驱动程序-如何使用UpdateDefinitionBuilder?

如何从C#Mongodb驱动程序查询时间戳记?

C#mongodb驱动程序groupby

如何使用MongoDB的Java驱动程序将许多文档合并为一个文档?

使用 .Net 驱动程序异步更新或插入 MongoDB 文档

如何在MongoDB Java驱动程序中将动态字段插入文档

Mongodb C# 驱动程序只返回数组中匹配的子文档

使用C#.NET驱动程序2.0投影mongodb子文档

mongodb Java驱动程序3.0:如何存储JSON文档

如何用Go驱动程序替换MongoDB中的文档?

如何使用带有Mongo C#驱动程序2.3的Mongo.Driver.Linq返回带有筛选的子文档的文档?

Mongodb:将文档树反向作为视图(使用C#驱动程序)

加载链接文档MongoDB驱动程序

如何使用MongoDb .net驱动程序获取集合中所有文档的几个特定字段

Java MongoDB驱动程序:如何更新集合中的所有文档?

带有聚合管道的MongoDB C#驱动程序更新文档

MongoDB C#驱动程序-更新嵌入式文档数组中的所有字段

如何将现有的子文档推送到MongoDB中的嵌入式数组中?

如何使用 MongoDB C 驱动程序和 FoundationDB 文档层进行事务?

如何在MongoDB C#驱动程序中按值的字段范围选择文档?

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