如何在 C# Mongodb 强类型驱动程序中删除嵌套文档的数组内的元素

蜡人

我使用官方 C# MongoDb 强类型驱动程序版本 2.5.0 与 MongoDB 交互。

考虑以下类:

public class Author
{

    public Author()
    {

    }

    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public string BirthDate { get; set; }

    public string ScientificDegree { get; set; }

    public Library Library { get; set; }
}

public class Library
{
    public DateTime DateAdded { get; set; }

    public DateTime LastModified { get; set; }

    public List<Book> Books { get; set; }

    [BsonDefaultValue(0)]
    public int ReadCount { get; set; }

}

如何使用作者库中的 id 删除一本书?这是我直接从数组中删除元素的代码。

var field = new ExpressionFieldDefinition<Library, List<Book>>(library => library.Books);

var bookFilter = Builders<Book>.Filter.Eq(book => book.Id, bookId);

var update = Builders<Library>.Update.PullFilter(field, bookFilter);

//How to apply the update to the author using author id
瑞奇·库马尔

您需要存储Library并对该Library对象执行更改并将其更新回文档。您可以使用的另一种方法PullFilter来删除它

var update = Builders<Author>.Update.PullFilter(x=>x.Library.Books,Builders<Book>.Filter.Eq(x=>x.id,bookId));
db.Author.UpdateOneAsync(x => x.Id.Equals(autherId), update).Result;

db.Author 是集合实例

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在C#Mongodb强类型驱动程序中基于嵌套数组元素创建索引

如何在C#Mongodb强类型驱动程序中基于嵌套数组元素进行过滤

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

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

如何使用最新的MongoDB C#驱动程序根据多个条件删除复杂数组对象的嵌套数组中的元素?

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

如何使用C#MongoDB驱动程序编写嵌套对象属性不能相等的强类型过滤器?

如何在MongoDB 2.7中使用MongoDB C#驱动程序更新通用类型

如何在C#Mongodb强类型驱动程序中计算单个属性的平均值

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

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

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

使用 C# Mongodb 强类型驱动程序在事务中创建多个索引

如何在MongoDB驱动程序中为NodeJS使用嵌套数组?

mongoDB:C#驱动程序V2如何更新嵌套集合中的项目

如何在MongoDB Java驱动程序3.2中编写查询,例如(A || B || C)&&(X || Y)

如何在Ubuntu中安装和使用mongodb c ++驱动程序?

如何在MongoDb(C#驱动程序)中禁用鉴别字段

如何在MongoDB-C驱动程序中查找特定值

如何在C#MongoDB驱动程序v2.0中获取连接状态?

如何在MongoDB C#驱动程序中获得结果的子集?

如何在C#驱动程序中设置MongoDB更改流“ OperationType”?

如何在MongoDB C#驱动程序中按后代属性筛选?

MongoDB C#驱动程序-如何在.NET中的联接集合上强制投影?

如何通过 .net mongoDb 驱动程序通过嵌套属性获取 mongoDb 中的文档

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

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

如何在c#中的mongodb中重命名嵌套数组的文档字段

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