问题标签 [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 投票
2 回答
3217 浏览

c# - 使用 C# 在 MongoDB 中查询、过滤和更新多级嵌套数组

我有这个 MongoDB 文档。我正在开发一个 MVC 应用程序并尝试使用 C# 更新评论数组(评论描述为“更新后评论”)。我正在使用新的 mongodb 版本。

我尝试使用这个:

我也尝试将过滤器更改为

对于这两种情况,我都无法查询、过滤和更新评论。

您能告诉我如何查找和更新本文档中的评论吗?任何建议都非常感谢!

0 投票
2 回答
12513 浏览

.net - C# 中的 MongoDB FilterDefinition 和 IQueryable

我有以下空间FilterDefinition

有没有办法将它包含在IQueryable表达式中?

例如,我可能有以下 LINQ 语句。我怎样才能包括上述条件?据我所知,空间查询没有 LINQ 支持。

我正在使用新的 2.2.2 库。

0 投票
0 回答
521 浏览

c# - .NET 中使用 csharp 驱动程序对嵌套集合进行 MongoDB 投影

在不久的将来,我想从 SQL Server 迁移到 MongoDB。现在我只是在玩弄所有的可能性并测试最好的模式设计。我偶然发现了一个问题。让我总结一下这个问题。

我有 30 个制造商,每个制造商都包含一个尺寸范围列表(如 S -> XXL)。每个尺码范围都有尺码列表(如 S、M、L、XL、XXL)。所以这是我创建的类:

现在这是我的问题。获得所有尺寸范围的最佳方法是什么?我使用 mongoDB 3.2 编写了这段代码。我在这里使用了 2 个步骤,但认为有更好的方法可以从所有制造商那里获得所有尺寸范围。如果有更好的方法,请告诉我。

0 投票
1 回答
647 浏览

c# - 使用表达式为数组中的字段创建文本索引

我想为数组中的多个字段和元素字段创建文本索引。目前我将数组元素的路径定义为一个字符串,它可以工作。有没有办法像我对这样的简单字段使用表达式:

我正在使用 mongodb 3.2 和 MongoDB.Driver 2.2.2

0 投票
2 回答
995 浏览

c# - Mongo DB C# Driver 2.0 同步计数

我需要使用尚未切换到异步的旧控制器计算与过滤器匹配的项目。我们有一个关于如何做到这一点的异步答案:

我还在 MongodDb 网站上找到了一篇介绍 2.0 .NET 驱动程序的文章,其中有一条评论似乎证实了这是不可能的:

  1. 它只是异步的:这是真的。新的 API 有一种趋势,即仅是异步的(例如 Microsoft 的 HttpClient)。一般来说,异步编程很容易,并且不需要大量线程就可以提高服务器吞吐量。我们正在考虑是否也应该支持同步 API,虽然我们已经收到了一些关于它的请求(包括你的请求),但一般用户似乎渴望使用异步编程。

尽管如此,我想问是否有办法做到这一点/确认如果不使控制器方法异步(及其所有助手)是不可能的。

0 投票
1 回答
7333 浏览

c# - JSON 阅读器期待一个值,但找到了“函数”

我有一个包含 BsonJavascript 对象的集合。

如您所见,“MapFunction”字段的值是 BsonJavascript。我可以成功导出和导入这些数据。但是当我将导出的 json 反序列化到 BsonDocument 中时,我得到了这个错误:

顺便说一句,我使用的是官方 C# 2.2 驱动程序,我的反序列化代码如下:

编辑

我将函数定义为字符串,然后在我的代码中将其转换为 BsonJavascriptFunction。这解决了我的问题。谢谢您的回复

0 投票
1 回答
1277 浏览

c# - C# mongodb 2.0 查找和投影数组的有序部分

我有以下代码块:

我有这个Competition包含 3 个字段的集合

这里的过滤器在Competition._Id. 我想按排名升序获得徽标和排名前 5 的团队。(由count值给出)列表可能很大,所以我想在这里使用 Project(或使用 Fields 的替代解决方案),但它可以t 似乎工作。问题:

1. 属于第二个r类型,忽略 TeamRanks。stringProject

2. 怎样才能只获得排名前5的队伍?

TIA。

编辑

我刚才注意到整个排序、跳过和限制都是在比赛中完成的,我当然希望它应用于 TeamRanks。因此,例如,如果该方法接收到 count = 7 和一些 CompetitionId,则该方法需要返回具有提供的 id 的比赛,并在其中返回排序的前 7 支球队。

0 投票
1 回答
200 浏览

c# - C# mongodb ObjectId 使用风险

我在看 Mongodb ObjectId 对象。暴露给我的客户(甚至是他自己的 SessionId)似乎是不安全的对象。虽然我使用以下代码生成随机 ObjectId:

我有时会得到连续的 id,我不希望用户能够猜测 100 万个 id 并最终抓住一个真实的。

有没有办法在 c# 上仍然使用 mongodb 并维护一个安全的 id?现在,有人说“使用 https”,但这不是问题。有人可以登录网络,获取 ObjectId 类型的 sessionId 并尝试猜测。

我怎样才能减少发生这种事情的可能性?

0 投票
1 回答
423 浏览

c# - c# mongodb upsert 与位置运算符问题

假设我有一个只包含一个数组的对象

当我想通过 Id 更新数组中的某个索引时,

并且找不到 Id 我想将新对象插入到数据库中,并且在插入时

它假设在提供的索引上有这个提供的 Id 和一个带有提供值的 arr。

到目前为止一切顺利,但是,它没有发生。

相反,Id 被插入 OK,但是数组变成了具有提供值的 int 值,而不是数组。

这是一个已知的错误吗?周围有吗?

TIA

对较旧问题的引用,但那是 2 年前: 这里

编辑

我使用默认值注册 arr:

还尝试添加标签而不是 registerMap:

我收到:

反序列化类 DatabaseManager.MongoEntities.A 的 arr 属性时出错:无法从 BsonType 'Document' 反序列化 'int[]'。

0 投票
2 回答
1084 浏览

mongodb-.net-driver - 如何在 mongodb csharp 驱动程序中强制将字典中的十进制值序列化为双精度值?

我有以下字典:

默认情况下,它被序列化为:

如果我将 DecimalSerializer 覆盖为:

这只影响“_v”值的序列化方式,例如:

预期结果:

请指教