问题标签 [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.
c# - MongoDb.Driver IMongoDatabase.GetCollectionNamesAsync() 异常
MongoDB.Driver
我使用 C#库连接到 MongoDB 。一些有效的代码
所以凭据是正确的,我IMongoDatabase
的 s 很好,但是,当我尝试检索数据库中的集合时,我得到一个AggregateException
,当我这样做时mongoDb.GetCollectionNamesAsync().Result
,异常详细信息是
AggregateException InnerException (count 1) MongoQueryException: QueryFailure flag 为真(响应为 { "$err" : "not authorized for query on taurusEvents.system.namespaces", "code" : 13 })。
我不确定这个异常告诉我什么。客户端的身份验证很好,但我似乎可以查询数据库。我在这里想念什么?
编辑。我现在意识到我需要使用凭证来执行此操作,但是,
我现在提供我的身份验证数据库名称的地方authDb
也会引发上述相同的内部异常。
编辑#2。我发现如果我这样做
通过明确引用集合名称,它可以工作,我得到我的集合。但是我想要一个可用的集合列表,为什么GetCollectionNamesAsync()
不工作?
编辑#3。我使用以下方法创建我的服务器角色:
1. 创建管理员用户:
2. 创建其他用户,例如:
谢谢你的时间。
c# - 如何在 C# MongoDB 驱动程序 v2.0 中获取连接状态?
我们开始使用新的MongoDB 驱动程序 v2,我们无法理解我们是否连接到数据库。
我们的存储库代码:
其中wrong-host
和wrong-port
是无效值。
首先,我们认为如果没有人在指定地址上监听但驱动程序没有抛出异常,则会引发异常。
下一步是在数据库上调用方法:
在这里,我们冻结了 30 秒而不是异常。我们不适合等待 30 秒来了解我们是否连接。
System.TimeoutException:使用 CompositeServerSelector{ Selectors = ReadPreferenceServerSelector{ ReadPreference = { Mode = Primary, TagSets = [] } },LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 } } 选择服务器 30000 毫秒后发生超时。集群状态的客户端视图是 { ClusterId : "1", Type : "Unknown", State : "Disconnected", Servers : [{ ServerId: "{ ClusterId : 1, EndPoint : "****" }", EndPoint: “****”,状态:“断开连接”,类型:“未知”,HeartbeatException:“MongoDB.Driver.MongoConnectionException:打开与服务器的连接时发生异常。---> System.Net.Sockets.SocketException : 无法连接,因为目标机器主动拒绝 ******
最后我们尝试设置不同的超时,但没有任何改变。
所以问题是我们如何知道我们是否在短时间间隔〜(1-2)秒内连接到mongo?
[更新]
我们目前的解决方案是:
用法
c# - IAsyncCursor v/s IAsyncCursorSource
在 MongoDB 驱动程序 2.0.1 中使用 ToListAsync() 期间,我观察到了两个不同的文档。
- IAsyncCursorSourceExtensions
- IAsyncCursorExtensions
这两者有什么区别。我用于 C# 的 MongoDriver 具有 IAsyncCursorSource。
c# - 将 BsonDocument 映射到类但出现错误
这是我从 MongoDb 集合中提取的 BsonDocument。我想将其反序列化(或映射)到我用 C# 制作的对象/类。
这是我想将 BsonDocument 映射/反序列化到的类。我班级中的字段是我唯一要检索的字段。
目前,这就是我尝试执行此操作的方式,但我收到“元素'类型'与 MyType 类的任何字段或属性不匹配”的错误消息。我不想在 MyType 类中包含“类型”字段。
我在最后一行收到错误。在此示例中,我尝试仅对 MyType 对象的一个实例的一个文档执行此操作。我还对如何将整个集合反序列化为 MyType 对象或类似对象的列表感兴趣,其中它不仅适用于一个 BsonDocument,而且适用于我的集合中的所有文档。
谢谢你的时间。
mongodb - 如何使用 Powershell 进行复杂的查询 MongoDB
我需要使用 Powershell 从 mongoDB 检索数据。假设我有 db.orders 集合,只需要检索上周创建的订单,并且只检索特定列,例如 _id、status、createdAt 字段。
订单集合架构
我可以像这样在 mongo shell 中查询它
但我需要在 Powershell 中执行此操作,这是我的 Powershell 脚本,其中包含简单查询,可准确提取 createdAt 日期.. 不是日期范围
在 MongoDB .NET Driver api 中,我无法进行复杂的查询,或者至少不知道如何进行。我可以根据一个特定的列进行查询,但不能制作复杂的列,并且不能限制某些字段的输出。
请告知是否有人知道如何。注意:它不是 .Net 项目,它只是使用 mongoDB .net 驱动程序,但在 Powershell 中执行。
c# - mongodb c# UpdateOneAsync(查询,更新)
我有一个循环。它更新了项目。
对于 10K 项目,我没有更新 1-4。但我没有得到任何错误。如果我连续两次进行更新,那么它将起作用。会是什么呢?MongoDB.Driver 版本="2.0.1"
c# - C# mongodb driver 2.2.3 如何为游标设置batchSize
我正在为 MongoDB 2.2.3 使用官方 C# 驱动程序
如何使用 C# 驱动程序设置光标的批量大小?
使用 javascript,我可以创建一个游标并为其设置批量大小:
我可以使用以下语句遍历所有项目:
我希望在具有异步/等待支持的 C# 中具有相同的行为。我知道我可以使用 C# 中的游标,但它的默认批处理大小为 4MB。这太匹配了,无法一次调用返回给客户端。
c# - Getting "TimeoutException" when trying to retrieve data from MongoDB
I'm using C# to connect to a MongoDB server using the official MongoDB.Driver with version 2.2.24.26
My code looks like this:
It works like charm (it finishes within less than 0.5 seconds) if the connection string is like
As soon as I want to use authentication, I always encounter a timeout.
The operation consuming all the time is the "ToList()". The list in my tests does have 136 entries. Am I missing something?
Edit: Sorry for the wrong topic in the first place. I don't know how a topic from a totally unrelated issue did appear here...
mongodb - 使用 mongo-scala-driver 在 Scala 中打印来自 Mongodb 的查询结果
我正在尝试在 Scala 中打印 MongoDB 查询的结果
抛出的错误是:Cannot resolve symbol printResults
。建议使用mongo-scala-driver
version的其他一些问题的答案1.2
,因为 printResults() 未针对 version1.1
及以下版本实现
SBT 文件:
尝试使用手动打印:
导致以下信息:
信息:ReadPreferenceServerSelector{readPreference=primary} 从集群描述 ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, serverDescriptions=[ServerDescription{address=localhost:27017, type=UNKNOWN, state=CONNECTING}]} 中没有选择服务器。在超时前等待 30000 毫秒
有没有办法在控制台中查看检索到的结果?
c# - MongoDb.Driver 2.4 反序列化数据类型改变
我有以下 POCO 课程:
该对象存储在 MongoDb 集合中。数据在生成的 bson 中具有正确的数据类型:
当我尝试查询集合时:
我收到一个错误,表明无法反序列化 property2:无法从 BsonType 'Int64' 反序列化 'String'
我正在尝试将数据库中 bson 文档中的字符串值反序列化为对象上的字符串值。
为什么 BsonSerializer 试图将其转换为十进制?在这种情况下,该值恰好是数字,但该字段在类中定义为字符串,因为该值通常是字母数字。
我在 VS2013 中使用 MongoDb.Driver v2.4 包。