MongoDB EF Core 提供程序里,可查询加密和向量搜索支持吗?

摘要:原文 | Rishit, Luce 翻译 | 郑子铭 本文由 Rishit Bhatia 和 Luce Carter 撰写。Rishit 是 MongoDB 的高级产品经理,专注于 .NET 开发人员体验,在转行产品管理之前,他曾多年从事
原文 | Rishit, Luce 翻译 | 郑子铭 本文由 Rishit Bhatia 和 Luce Carter 撰写。Rishit 是 MongoDB 的高级产品经理,专注于 .NET 开发人员体验,在转行产品管理之前,他曾多年从事 C# 的实践工作。Luce 是 MongoDB 的高级开发者布道师、微软 MVP,热爱代码、阳光和学习。本文已由微软 .NET 团队审核,适用于 EF Core。* MongoDB Entity Framework (EF) Core 提供程序自 2024 年 5 月起正式发布。自发布以来,我们欣喜地看到 .NET 开发人员社区给予了积极的反馈,并且该提供程序在各种应用程序中得到了越来越广泛的采用。 该提供商使开发人员能够利用 LINQ 查询、更改跟踪和乐观并发等 EF Core 功能,将 MongoDB 无缝集成到他们的 .NET 项目中,同时利用 MongoDB 的灵活性和可扩展性。 我们持续增强提供程序的功能,新增了诸多特性,例如改进了对 MongoDB 特定操作的支持、优化了性能,并扩展了与最新 EF 版本的兼容性。这些更新体现了我们致力于为开发者提供强大、直观且可靠的方式,让他们能够使用 MongoDB 和 EF Core 构建现代应用程序的承诺。 我们很高兴地宣布两项新增的重大功能——可查询加密和向量搜索!这些功能让您可以直接通过便捷的 API 从 MongoDB EF Core 提供程序利用一些重要的 MongoDB 功能,而无需依赖底层的 .NET C# 驱动程序。 让我们先睹为快,看看它们长什么样。 MongoDB 可查询加密 可查询加密是一项突破性功能,它允许您加密 MongoDB 数据库中的敏感数据,同时仍然能够查询这些数据。这意味着您可以在不牺牲查询能力的前提下,维护强大的数据隐私和合规性。 对于医疗保健和金融等数据治理要求严格的行业来说,这一点尤其重要。 对于用户而言,这意味着更高的安全性、更低的数据泄露风险和更简化的合规工作,因为他们可以自信地对静态数据和传输中的数据进行加密,而无需重新设计应用程序架构来查询加密字段。 配置数据模型以定义加密属性DbContext非常OnModelCreating简单,如下所示: protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Employee>(entity => { entity.Property(e => e.TaxPayerId) .IsEncryptedForEquality(<Your Data Encryption Key GUID>)); entity.Property(e => e.Salary) .HasBsonRepresentation(BsonType.Decimal128) // Salaries from 0 to 10 million, no decimal place precision .IsEncryptedForRange(0m, 10000000m, 0, <Your Data Encryption Key GUID>)); }); } 下面简要展示一下相等性查询和范围查询的工作原理: //Encrypted Equality Query var specificEmployee = db.Employees.Where(e => e.TaxPayerId == "45678"); //Encrypted Range Query var seniorEmployees = db.Employees.Where(e => e.Salary >= 100000m && e.Salary < 200000m); 完整的教程将向您展示如何使用 MongoDB EF Core 提供程序加密数据并进行查询。 MongoDB 向量搜索 向量搜索彻底革新了查找和分析非结构化数据的方式,它支持基于语义而非精确关键词的相似性搜索。这项功能由向量嵌入技术驱动,该技术将数据点(例如文本、图像或音频)表示为高维空间中的数值向量。 向量搜索的重要性在于它能够为人工智能应用(如推荐引擎、语义搜索和异常检测)开启新的可能性。
阅读全文