问题标签 [mongodb-csharp-2.0]

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 投票
1 回答
589 浏览

c# - 使用 Mongo 驱动程序 2 升级 IBsonSerializer

Mongo 驱动程序的旧实现导致了这种代码:

新界面完全不同。如何使用这个新接口开始实现以前的代码?

0 投票
3 回答
11026 浏览

c# - 如何在 MongoDB C# Driver 2.0 中记录我的查询?

刚刚将我的应用程序升级到最新的稳定 MongoDB C# Driver 2.0。

在迁移过程中,基本功能已被破坏,即使是最简单的查询,例如:this.collection.Find(e => e.Id == id).SingleOrDefaultAsync()不返回正确的数据。

检查了类映射和约定,但我想查看输出查询以正确识别问题。

那么,侧面应该怎么做MongoClient呢?

在数据库级别设置分析是可能的,但不是一个好的解决方案,因为我们有多个应用程序和开发人员使用数据库。

我的应用程序目前正在使用Ninject.Extensions.Logginglog4net在 UI、业务和 EF 数据访问。

0 投票
0 回答
280 浏览

mongodb - 面临的问题 Mongo DB ConnectionString

如果凭据如下,任何人都可以告诉我如何为 MongoDB 编写连接字符串:

数据库名称 - ABC,

服务器名称 - DEF1,DEF2

用户名 - ankur

密码 - ankur123

我已经在下面创建了

但是会出现以下错误:

异常:MongoDB.Driver.MongoConnectionException:无法在“00:00:30”的指定时间范围内连接。

0 投票
1 回答
2036 浏览

c# - 旧 .net 驱动程序 MongoCollection.Save 的新替代方案?

我有一些使用旧 1.x 版本的 MongoDB 驱动程序的 C# 代码,它提供了使用该方法的通用保存MongoCollection.Save()方法。然而,在升级到 2.0 之后,这个方法似乎消失了,取而代之的是一个 Update 方法,该方法需要指定对象上的所有更新字段(这显然不适合泛型方法......)

如何在 2.0 驱动程序中保留旧的 Save 方法的功能(即只传入一个对象以更新所有字段)?

0 投票
1 回答
14333 浏览

c# - 在 MongoDB C# 中展开然后分组聚合

我在使用新的 C# 2.0 MongoDB 驱动程序和聚合管道时遇到了一些问题。

基本上,我试图在对象的数组字段中返回最受欢迎的元素。字段类型为:IList<string> FavouritePlaceIds { get; set; }

我有以下 MongoDB 聚合,它按预期工作:

但是,现在的问题是尝试使用新的 MongoDB 驱动程序 2.0 将其转换为 C# 代码。我一直在使用以下链接来获取聚合管道的帮助:http: //mongodb.github.io/mongo-csharp-driver/2.0/reference/driver/crud/reading/#unwind

到目前为止,我的聚合管道有以下内容:

当我去编译该代码时,我收到以下消息:

“BsonDocument”不包含“FavouritePlaceIds”的定义,并且找不到接受“BsonDocument”类型的第一个参数的扩展方法“FavouritePlaceIds”......

错误发生在i => i.FavouritePlaceIdsGroup() 方法的第一个参数 ( ) 上。

阅读组部分下提供的链接中的注释,它提到:

因为 $unwind 是一种投影类型,所以您必须提供返回类型。

所以,我假设我没有指定正确的返回类型,这就是为什么它需要一个 BsonDocument 对象,并且无法编译。

那么,如何在 Group 方法中指定正确的返回类型呢?

0 投票
3 回答
76752 浏览

c# - 从 MongoDB“集合”中获取所有“文档”

我需要在 MongoDB 中检索我的集合中的所有文档,但我不知道如何。我已经像这样宣布了我的“收藏”-

我遵循了这个MongoDB 教程中的解释。我根据自己的需要调整了它,比如——

但是,我一直遇到以下错误-

MongoDB.Driver.IMongoCollection 没有“查找”的定义和扩展方法的最佳覆盖[超长的东西]。查找包含无效参数。

0 投票
2 回答
1810 浏览

c# - 如何将mongo集合转换为接口C#

我有一个带有签名的存储库:

如何将 mongoDb 集合转换为该接口?(MongoDb 驱动程序 2.0)

另外,这段代码困扰着我

有没有更好的方法来收集所有文档?

0 投票
1 回答
1341 浏览

mongodb - 在 mongodb 3.0(.Net 驱动程序 2.0)中使用 TTL 的文档不会过期

我有以下代码。EnsureIndexes 由构造函数调用,以确保已在 _expireAt 字段上创建 TTL 索引。然后,当通过调用 AddOrUpdateItem 方法插入文档时,它会将未来日期添加到 _expireAt 字段。但是,该日期过去了,文档永不过期。我究竟做错了什么?

以下内容与获取 Mongo 集合上的 getIndices 的命令一起返回。

[ {“v”:1,“key”:{“_id”:1},“name”:“ id ”,“ns”:“AuditDemo.Users”},{“v”:1,“key”: {“_expireAt”:1 },“名称”:“_expireAt_1”,“ns”:“AuditDemo.Users”,“expireAfterSeconds”:0 }] >

在我的 AddOrUpdateItem 方法中,我首先将泛型类型序列化为 json,以便能够为 expireAt 添加动态元素。然后我使用 BsonSerializer 将这个修改后的 json 反序列化为 BsonDocument。此时,BsonDocument 是否将 datetime json 字符串转换为 Bson 日期类型以使 TTL 索引起作用?

findOne 命令的结果

{“_id”:“0”,“UserGuid”:{“Value”:“054f6141-e655-41dd-a9d5-39382d3360ab”},“UserName”:null,“FirstName”:{“Value”:“JORDAN”} ,“姓氏”:{“价值”:“ACEVEDO”},“电子邮件”:{“价值”:“JORDAN.ACEVEDO@fake.com”},“__typ”:“AuditDemo.ConsoleApplication.Models.Wss.UserInfo, ConsoleTest 应用程序,版本=1.0.0.0,文化=中性,PublicKeyToken=null”,“_expireAt”:“2015-05-31T10:23:15.8979321Z”} >

0 投票
0 回答
371 浏览

c# - 通过引用 id 对 mongodb 过滤结果进行分组

我有这个简化的模型:

我已经用过滤器询问了一些我故意省略的字段的父母。现在我有一个父 ID 集合。我想获取Gender.Male仅适用于我通过第一个查询获得的那些父母的所有孩子并将它们分组,以便我可以在 aParent和之间进行映射List<Child>

然而,这会抛出

几个小问题

  1. 我假设我已经childrenFilter以这样的方式编写了它,它会在服务器上执行并且客户端不会接收Gender.Female孩子?如果那不是真的 - 正确的方法是什么?如果我将重载与Linq.Expression- 一起使用,该过滤器会在服务器上还是在客户端上执行?

  2. 孩子是在服务器上还是在客户端上分组?我应该如何编写Group才能使其在应该更有效的服务器上执行?

更新 17.06

根据@CraigWilson 的建议,我尝试过g.ToList()

这导致了一个不同的例外:

未处理的异常:System.AggregateException:发生一个或多个错误。--- System.InvalidCastException:无法将“MongoDB.Driver.Linq.Expressions.SerializationExpression”类型的对象转换为“System.Linq.Expressions.MethodCallExpression”类型。

0 投票
1 回答
917 浏览

c# - 如何使用 MongoDB c# 驱动程序(版本 2)搜索嵌套条件?

我有一组文档,其中可以包含按类别分组的标准。结构可能如下所示:

我用来为标准创建嵌入文档的类如下所示:

用户可以从每个类别中选择要搜索的条件(作为 函数出现IEnumerable<CriteriaEntity>),并且文档必须包含所有选定的条件才能返回。这是我的第一次尝试:

但是我收到错误消息:“无法确定实体的序列化信息......”。我怎样才能让它工作?