mongodb filter array of objects c#

如果您需要在 C# 中使用 MongoDB 进行筛选数组对象,可以使用 LINQ 表达式和 MongoDB.Driver 命名空间中的 FilterDefinition 类来实现。以下是一个示例代码片段:

using MongoDB.Driver;
using MongoDB.Bson;
// 定义一个类来表示数组对象
public class Book
    public ObjectId Id { get; set; }
    public string Title { get; set; }
    public List<Author> Authors { get; set; }
public class Author
    public string Name { get; set; }
    public int Age { get; set; }
// 创建 MongoDB 客户端和数据库
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("myDatabase");
// 获取 Books 集合
var collection = database.GetCollection<Book>("Books");
// 使用 LINQ 表达式来筛选数组对象
var filter = Builders<Book>.Filter.ElemMatch(
    b => b.Authors,
    a => a.Name == "Jane Doe"
// 获取符合条件的文档
var results = collection.Find(filter).ToList();

在这个例子中,我们定义了一个 Book 类来表示 MongoDB 中的文档。这个类包含一个名为 Authors 的数组对象,其中每个元素都是一个包含 Name 和 Age 属性的 Author 对象。

接着,我们创建了一个 MongoDB 客户端并连接到名为 myDatabase 的数据库。然后,我们获取了名为 Books 的集合,并使用 LINQ 表达式和 ElemMatch 方法来筛选数组对象。这个筛选条件表示,我们要找到所有包含名为 Jane Doe 的作者的 Book 文档。

最后,我们使用 Find 方法来获取符合条件的文档,并将它们存储在一个名为 results 的 List 中。

希望这个示例能够帮助您筛选 MongoDB 中的数组对象。

  •