问题标签 [mongodb.driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1317 浏览

c# - 使用 MongoDB.Driver 2 在 Azure DocumentDB 中设置生存时间 (TTL)

我正在尝试使用 MongoDB.Driver 在 DocumentDB 中实现 TTL。我创建了一个索引

上面的代码创建_id123索引没有任何错误,但插入的数据在10秒后没有过期。请帮我解决这个问题。

0 投票
0 回答
30 浏览

c# - 为什么数据库中的 Id 与我使用 MongoDb.Driver 的调试代码之间存在差异

我一直在尝试保留一个名为 User 的具体类,它继承了 Entity。我不明白为什么 Id 与数据库和调试代码不同。我将 C# 与 MongoDb.Driver 一起使用。

作为参考,这是我的存储库及其保存方法。

当我尝试将用户保存到数据库时,存储在数据库中的 _id 字段与我的代码中显示的 ID 不同。

从数据库查看

从代码查看

谁能解释为什么?

0 投票
1 回答
674 浏览

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

我正在尝试使用$in使用 MongoDB C# 驱动程序的运算符。

这是一个示例文档:

这是我尝试的第一种方法:

但是,它只返回KeyValue列表中的前一项。

这是我尝试的第二种方法:

在这种情况下,它返回所有未包含在键中的嵌套记录。

0 投票
0 回答
367 浏览

mongodb.driver - .Net MongoDB.Driver 上的 Azure Cosmos DB 错误

在 Azure Cosmos DB 上使用 .net MongoDB.Driver,我想根据andIsRegistered的过滤器对文档元素进行更新,其中是分区键。我是 MongoDB 新手,我的代码是否正确?id="Andersen.1"LastName="Andersen"LastName

我收到一个错误:

“命令中的查询必须针对单个分片键”

0 投票
2 回答
1831 浏览

c# - 如何从 C# 中具有重复元素名称的 Mongodb 读取数据

MongoDB.Drivers在我的 C# MVC 应用程序中使用与 Mongodb 数据库进行通信。

C# 代码

MongoDB数据图片 在此处输入图像描述

在上图中,您可以看到我有多个DuplicateCol使用不同值调用的列。当我尝试在c#using中读取这些数据时,MongoDB.Driver出现以下错误:InvalidOperationException: Duplicate element name 'DuplicateCol'.

在插入重复的元素名称时,我使用AllowDuplicateNames=trueBsonDocument对象如下。(它插入重复的元素名称而不会出错。)

注意:此架构是必须的。我不能改变它。

请向我提供解决此问题的建议。任何帮助将不胜感激..

谢谢。

0 投票
2 回答
1019 浏览

c# - 如何在 C# 中使用 Mongodb.Driver 对 MongoDb 表中的 Array 对象应用过滤器?

MongoDB用来存储我的应用程序数据。现在我想根据 MongoDB 表中 Array 对象的过滤器获取数据。如下图所示在此处输入图像描述

这是我的桌子tblEmployee。我想找到那些GroupList字段包含 value的记录Group5。当我在 mongodb 表中插入这些记录时,我将其存储Dictionary<string,dynamic>C#如下代码。

现在,我尝试了下面的代码,根据需要根据过滤器读取数据。

但是,在allDataList我没有记录时,它应该返回我在上图中突出显示的一条记录(记录号 4)。

请给我建议如何为包含特定值的数组对象构建过滤器(在我的情况下,数组包含“Group5”字符串)

任何帮助或建议将不胜感激。

谢谢。

0 投票
1 回答
388 浏览

c# - 如何使用正则表达式从 C# 中的 MongoDB 集合中获取数据?

MongoDB.Drivers在我的 Web 应用程序中使用 nuget 包MVC (C#)与 MongoDB 数据库进行通信。现在,我想根据特定列及其值获取数据。我使用下面的代码来获取数据。

但是,上面的代码正在执行like查询。这意味着它正在作为 ( select * from Employee where FirstName like '%John%') 我不想要这个。我只想获取那些FirstName值应该完全匹配的数据。(就像在这种情况下 FirstName 应该等于John)。

我该如何执行此操作,任何人都可以为此提供建议。

注意: 我曾经new BsonRegularExpression(findValue, "i")搜索过case-insensitive

任何帮助将不胜感激。

谢谢

0 投票
1 回答
11261 浏览

c# - MongoDb / C# 过滤并获取所有子文档

我在查询 Mongo-DB 集合时遇到了困难。

我正在使用的文档

一些样本数据

我现在想通过 CustomerId 查询文档并过滤一些地址值以返回名称为 %Dan% 的所有地址。由于地址集合可能很大,我想在查询时过滤这些地址

当这样查询时,它可以工作,但它包含所有地址:

我想得到的是:

或者

我还尝试了几种使用 Aggregate/Match/Project 的方法,但无法使其正常工作。“AsQueryable”也不起作用,因为驱动程序上没有实现 IndexOf。

使用版本:

  • MongoDB.Driver v 2.6.1(也是 Bson)
  • .Net 框架 4.5.2
0 投票
2 回答
2505 浏览

mongodb - Azure Cosmos DB 中托管的 MongoDB:分片与分区

我们希望将 MongoDB 用于我们的数据库,并且我们希望使用 MongoDB API 来避免“锁定”到 Azure Cosmos DB 托管。

我们使用 .Net Core 和 MongoDB.Driver 包(以便能够在本地、Atlas、Azure Cosmos hsoting 等之间轻松切换)与 MongoDB 实例进行通信,到目前为止一切都很好。

为了能够处理数据量(大小和性能)的未来增长,我希望对我的集合进行分片。据我了解,Cosmos DB 使用的策略是使用分区键进行分区,但由于我们使用 MongoDB.Driver,我无论如何都找不到在我的查询中指定分区键。

“普通” MongoDB 使用分片,您可以设置一个文档属性,该属性应用作数据分片方式的分隔符。

所以,我的猜测是分片是要走的路(因为 partionkeys 是 Cosmos 的一项功能),但我无法让它工作。

Azure 门户中的“MongoDB shell”不理解 sh.shardCollection 命令,如果我从客户端连接 MongoDB shell,则会收到以下错误:

如何继续在 Azure Cosmos 中托管的 MongoDB 实例中启动和运行分片?

0 投票
2 回答
592 浏览

mongodb - 获取 listOfStrings 中 subDocument.value 所在的所有项目

我在 dotnetcore 2.1 中使用 MongoDB.Driver nuget 包。我正在尝试返回集合中的文档列表,其中子文档字段等于我拥有的列表中包含的任何项目。理想情况下,我需要在 C# 语法中为 dotnetcore 2.1 的 MongoDB.Driver nuget 包提供这个。

文档 { "_id" : "e29628a65e914c1e91b3fd9cbf6f2353", "Enabled" : true, "Name" : "Document123", "DisplayName" : "Some Document", "Description" : "Some Description", "Data" : [ "lastname", "email", "firstname", "zipcode" ], "Items" : [ { "_id" : "1", "Name" : "bob" }, { "_id" : "2", "Name" : "smith" } ] }

如果这是 SQL,这就是我想要做的:

SELECT * FROM Document a, Item b WHERE a.Id = b.DocumentId AND b.Name IN ('bob', 'smith', 'alex')

以下是我们所拥有的不适用于 MongoDB 驱动程序的内容:

提前致谢。