如何通过 Linq 查询 MongoDB 中的 BsonExtraElements

2024-03-07

我使用 mongodb [BsonExtraElements] 功能来扩展我的类的一些动态数据,但不幸的是我无法通过 mongodb C# 驱动程序创建查询。

这是我的模型类:

public class MongoProductEntity 
{
    public MongoProductEntity()
    {
        AdditionalColumns = new BsonDocument { AllowDuplicateNames = false };
    }
    [BsonExtraElements]
    public BsonDocument AdditionalColumns { get; set; }
    public string BrandName { get; set; }
}

这是查询部分:

        var productEntity = new MongoProductEntity ()
        {
            BrandName = "Brand"
        };            
        productEntity.AdditionalColumns.Add("testProperty", 6);
        productEntity.AdditionalColumns.Add("testProperty2", "almafa");

        await productEntityRepo.InsertAsync(productEntity);
        var qq = productEntityRepo.Where(x => x.AdditionalColumns["testProperty"] == 6).ToList();

此查询不会从数据库返回任何元素,但是如果我尝试查询 BrandName 属性,一切正常!

有没有人遇到过类似的情况或知道为什么该查询不起作用? 提前谢谢!

这里只需简单说明一下:productEntityRepo 的类型是 MongoDb MongoProductEntity 集合的包装器,此包装器将集合作为 Queryable 返回,仅此而已。我正在使用 MongoDb 3.2.9 和最新的 C# 驱动程序 2.2.4。


Since C# 驱动程序的 .Inject() 方法可以在FilterDefinition<T>:

var filter = Builders<BsonDocument>.Filter.Eq("testProperty2", "almafa");
productEntityRepo.Where((dbModel) => dbModel.BrandName == "Brand" && filter.Inject());

这应该允许您表达难以或不可能通过 LINQ 描述的过滤器。不过,您需要从 2.2.4 更新到较新的版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 Linq 查询 MongoDB 中的 BsonExtraElements 的相关文章

  • JetBrains Rider 针对 4.5 框架,无法切换到 4.7

    基本上 当尝试添加不支持旧框架的 NuGet 包时 会出现错误 但是在项目配置中只有 4 5 可用 在项目创建过程中 不存在选择目标的选项 有什么方法可以正确配置它吗 I haven t found out how to set up NE
  • 何时使用 C++ 私有继承而不是组合?

    你能给我一个具体的例子吗 什么时候使用私有继承优于组合 就我个人而言 我将使用组合而不是私有继承 但在某些情况下 使用私有继承可能是特定问题的最佳解决方案 正在阅读C faq http www parashift com c faq lit
  • 静态 OpenCV 库中未定义的引用

    我有一个使用 OpenCV 3 1 的 C 项目 并且使用共享库可以正常工作 但现在我想使用静态库 位于项目目录中的文件夹中 来编译它 因为我希望能够在未安装 OpenCV 的情况下导出它 如果需要还可以编辑和重新编译 这次我重新编译了 O
  • 如何部署包含第三方 DLL 文件的 C# 应用程序?

    首先 我对部署了解不多 我希望我的问题有意义 我需要将 C 应用程序安装 部署到多个桌面 它需要一个第三方 DLL 文件 一个 C 库 lpsolve55 dll 对于那些感兴趣的人 它是一个免费的 MIP LP 求解器 请参阅 lpsol
  • AcceptSocket 超时?

    是否有可能AcceptSocket on a TcpListener具有超时的对象 以便它偶尔被中断 TcpListener server new TcpListener localIP port server Start while sh
  • PartialView Action 正在调用自身

    我有 MVC 应用程序 它用于从主视图 ProductMaster 将 ProductAreaGrid 列表显示为 PartialView 并且它将在局部视图内将 CreateProductArea 作为 PartialView 我的 Gr
  • += 运算符在 C++ 中是如何实现的?

    这是我一直在思考的一个问题 但从未找到任何资源来说明这个问题的答案 事实上它不仅是为了 也适用于它的兄弟姐妹 即 等等 当然不是 考虑这个例子 int a 5 a 4 this will make a 9 现在考虑等效表达式 a a 4 T
  • 为什么 rand() 总是返回相同的值? [复制]

    这个问题在这里已经有答案了 可能的重复 在C中生成随机数 https stackoverflow com questions 3067364 generating random numbers in c 使用 rand 生成随机数 http
  • 如果我重新分配并且新大小为 0,会发生什么情况。这与释放等效吗?

    给出以下代码 int a NULL a calloc 1 sizeof a printf d n a a realloc a 0 printf d n a return 0 它返回 4078904 0 这个 realloc 相当于 free
  • 这些工作队列标志意味着什么?

    在研究工作队列时 我遇到了内核中定义的工作队列标志和常量 我有以下我无法理解的疑问 这里的排水和救援到底是什么意思 WQ DRAINING 1 lt lt 6 internal workqueue is draining WQ RESCUE
  • 在 cl-mongo 中实现 MongoDB SASL 身份验证

    我已经从 fons 分叉了 cl mongo common lisp MongoDB 库 存储库 因为它已经不再维护并且不支持 SCRAM SHA 1 登录过程 这是我的叉子 https github com mprelude cl mon
  • 如何在 SQLite 中检查数据库是否存在 C#

    我目前正在用 C 编写一个应用程序 并使用 sqlite 作为嵌入式数据库 我的应用程序在启动时创建一个新数据库 但如何让它检查数据库是否存在 如果它确实存在 我如何让它使用它 如果不存在如何创建一个新数据库 这是我到目前为止所拥有的 pr
  • 在 C# 窗口应用程序中运行 C/C++ 控制台应用程序?

    现在 我想开发一个简单的应用程序 因此我决定最快的编码方式是 C NET 但现在 我很难实现我需要的功能之一 我想做的是在 C 应用程序的窗口内运行 C C 控制台应用程序 就像在虚幻前端中一样 添加一点通信方式 以便我可以为控制台应用程序
  • C# 模式匹配

    我对 C 有点陌生 我正在寻找一个字符串匹配模式来执行以下操作 我有一个像这样的字符串 该书将在 唐宁街 11 号接待处 并将由主要医疗保健人员参加 我需要创建一个 span 标签来使用 startIndex 和 length 突出显示一些
  • 使用方法的状态模式

    我正在尝试使用方法作为状态而不是类来基于状态模式的修改版本来实现一个简单的状态机 如下所示 private Action
  • 包含从代码隐藏 (ASP.NET C#) 到 ASPX 中的图像概述的图像列表 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C# 和断点 - 这里有魔术师吗?

    我有这个 public static void ByLinkText string text for var i 0 i lt 50 i try Setup Driver FindElement By LinkText text Click
  • 是否可以检测流是否已被客户端关闭?

    简要介绍一下情况 我有一项服务可以通过套接字接收信息并发送回复 连接不安全 我想设置另一个可以为这些连接提供 TLS 的服务 这个新服务将提供单个端口并根据提供的客户端证书分发连接 我不想使用 stunnel 有几个原因 其中之一是每个接收
  • 如何创建实体集或模型而不在数据库中创建相应的表 - 实体框架

    我的 sqlserver 数据库中有一个存储过程 它返回多个结果集 我正在使用 msdn 中的以下链接从实体框架中的 SP 读取多个结果集 https msdn microsoft com en us library jj691402 v
  • 有没有办法在 C# 中仅通过文件名查找文件?

    我们现在使用绝对路径或相对路径在 C 应用程序中查找文件 如果文件位于当前工作目录下或 路径 之一下 有没有办法仅通过名称查找文件 使用绝对路径不好 使用相对路径也不够好 因为我们可能通过重命名或移动项目文件夹来更改项目结构 如果我们的代码

随机推荐

  • Solr 中的 docValues 是什么?我什么时候应该使用它们?

    因此 我阅读了多个来源 试图解释 Solr 中的 docValues 是什么 但我似乎不明白何时应该使用它们 尤其是与索引字段和存储字段相关的时候 谁能解释一下吗 Solr 中的 docValues 是什么 Doc Values 可以解释为
  • 标题将包含的 div 从顶部向下推?

    我对 stackoverflow 和 Web 开发都是新手 尝试在没有任何帮助的情况下学习 我正在尝试创建一份简历 作为磨练我的技能的一部分 事情是这样的 我的包含 div 下的第一个 div 是带有 id 的 divheader 我已将包
  • Rails 中数字的本地化

    对新帖子感到抱歉 但我的第一个帖子关注的是阿拉伯 波斯数字 但问题似乎更大 我想知道是否有人做了一个 gem 来处理 ruby rails 中数字的本地化 I18n 官方语言环境 https github com svenfuchs rai
  • Pester:无法访问父作用域变量

    我在 Pester 中有以下简单的测试 Name Tests ps1 name foo Describe Check name It should have the correct value name Should Be foo 因此 当
  • R:解压缩多个文件,每个文件都在新的子目录中或重命名

    我设法调整一些代码来解压缩许多文件 但是解压时会出现同名文件 被替换 在我的工作目录中 我有 zip 文件 我在该目录中创建了一个名为 unzip 的新文件夹 我在其中解压缩了文件 dir create paste0 path unzip
  • 将 IEEE 754 浮点转换为 MIL-STD-1750A 浮点

    我正在尝试将 IEEE 754 32 位单精度浮点值 标准 c 浮点变量 转换为无符号长变量 格式为MIL STD 1750A http www xgc com manuals mil std 1750a 1 7 pdf 我在帖子底部包含了
  • 在 Grails 中将自定义 id 生成定义为默认值的最佳方法是什么?

    我想切换我的域类以使用可变长度的 UUID 作为其 id 我不想简单地在 URL 上显示连续的 id 供人们尝试和搞乱 我编写了一个自定义版本的 Java UUID 方法来允许可变长度 这样我就可以为不会变大的模型使用更短的 id 我发现这
  • 两个数组相加/求和

    我遇到了一个纯粹假设的问题 如果我找到正确的 linq 方法 感觉它有一个简单的解决方案 我有两个整数数组 我知道它们的大小相同 我想创建相同大小的第三个数组 其中第三个数组中的元素是相应位置的前两个数组中的元素之和 下面是一个应该显示我想
  • NetSuite / Suitescript - 为什么此验证字段脚本会进入无限循环?

    我的脚本进入无限循环 我不知道为什么 我在验证字段上运行此命令 并且如果存在具有相同参考号的另一个供应商帐单 则会阻止对该字段进行更改 从而强制用户将 参考号 更改为唯一 这是我的代码 function validateField type
  • 如何查看 C# 数组在内存中的分布情况?

    我想看看 C 数组是如何存放在计算机内存中的 我想看到的主要是两列 第一列是地址 第二列是数组元素 是否可以 我想从一维数组开始 但然后我想观察多维数组是如何放置的 Question 我如何通过 Visual Studio 看到它 您可以使
  • 运行时错误:事件循环正在运行

    当我调用该函数时出现以下错误send message Exception in thread Thread 1 Traceback most recent call last File usr lib python3 4 threading
  • Camel SFTP - 无法将目录更改为“/”

    我需要通过 SFTP 连接到服务器 但收到此错误 INFO org apache camel component file remote SftpOperations connect Connected to sftp myserver c
  • 从 Powershell 中的对象数组中删除项目

    我有一个数组对象 a 它返回如下所示的输出 通过执行 a 0 Name 我可以访问每个 Name 条目 a 0 Available 我可以访问其相应的可用空间 我有另一个数组 b 包含一些名称 例如 b 返回两个名称 sandeep agg
  • 解释 - 不涉及反射

    我有一个非常简单的问题 这不仅适用于 Spray json 而且我读过 argonaut 和 circe 的类似声明 所以请赐教 在 Spray json 中 我遇到这样的声明 There is no reflection involved
  • 如何在没有 ID 的情况下在 Prisma 中更新插入新记录?

    我正在使用 Prisma https www prisma io https www prisma io 作为 ORM 我想在存储数据时检查重复项 如果不存在 则创建一条新记录 我想我可以使用 Prisma 提供的 upsert 方法来做到
  • underscore.js 中的 chain 函数是否创建了一个 monad?

    In the chain文档 http underscorejs org chaining你发现 Calling chain在包装对象上将导致所有未来的方法调用 也返回包装的对象 当你完成后 计算 使用value检索最终值 也是如此chai
  • OpenAPI中如何定义全局参数?

    我正在准备我的 API 文档 方法是手工完成 而不是自动生成 我有应该发送到所有 API 的标头 但不知道是否可以为整个 API 全局定义参数 其中一些标头是静态的 有些必须在调用 API 时设置 但它们在所有 API 中都是相同的 我不想
  • 创建字典时使用语言模型文件

    我创建了一个语音到文本识别应用程序 为此 我使用 CMULanguage 工具开发了一本字典 为了为我的项目创建字典 我在组和文件中的语言文件夹中添加了两个文件 这些文件的扩展名是 lm 语言模型 和 dic 当我上传我的语料库时 CMUL
  • Spring Data JPA JpaRepository.save(entity) 不返回数据库默认值

    我有一个相当简单的问题 在单个事务中 我的代码如下所示 MyClass c new MyClass c setPropA A c myClassRepository save c c setPropC C 我的实体如下所示 Entity T
  • 如何通过 Linq 查询 MongoDB 中的 BsonExtraElements

    我使用 mongodb BsonExtraElements 功能来扩展我的类的一些动态数据 但不幸的是我无法通过 mongodb C 驱动程序创建查询 这是我的模型类 public class MongoProductEntity publ