Tag: mongodb

MongoDB C#Driver中的BsonValue和自定义类

我正在尝试使用c#驱动程序在mongodb中使用$push进行更新查询。 Update.Push(…)方法需要一个字符串名称(没关系),并且BsonValue需要“推送”。 这是我遇到问题的地方。 我正在尝试将非简单类型推送到字段的数组。 例如: { $push : { “arrayfield” : { “a” : 7, “b” : 12 } } } 这在Mongo控制台中运行良好,但我无法弄清楚如何将我的对象变成BsonValue。 我已经尝试了BsonValue.Create(myObjectInstance)但这给了我一个错误,说.NET类型无法映射到BsonValue。 我错过了一些简单的事吗?

实现所有类BsonIgnoreExtraElements

我在MongoDrive中使用mongDb,我想知道如何在我的所有类中实现[BsonIgnoreExtraElements] 。 我知道通过ConventionProfile有一种方法,但我不知道如何实现它。

IAsyncCursor如何用于使用mongodb c#驱动程序进行迭代?

我正在尝试获取服务器中所有数据库的列表,并最终将它们打印出来(即将它们的名称用作string s)。 使用以前版本的c#驱动程序,我可以调用Server.GetDatabases() ,但它已被ListDatabasesAsync()替换。 返回值是IAsyncCursor ,我不知道如何处理它。 如何用这样的游标遍历数据库列表(或任何东西)?

如何使用C#MongoDB驱动程序检索字段子集?

我在世界各地搜索过,似乎无法找到答案。 我如何在C#中执行此操作: // retrieve ssn field for documents where last_name == ‘Smith’: db.users.find({last_name: ‘Smith’}, {‘ssn’: 1}); 谢谢!

Json.NET反序列化Mongo ObjectId给出了错误的结果

我正在使用官方的Mongo C#Driver和RestSharp用Json.NET调用Rest Api来执行序列化/反序列化。 假设我有一个Person类,如下所示,我想POST&GET: public class Person { [JsonProperty(“_id”),JsonConverter(typeof(ObjectIdConverter))] public ObjectId Id {get;set;} public string Name {get;set;} } 我创建一个新的Person对象: var person = new Person{Id = ObjectId.GenerateId(),Name=’Joe Bloggs’}; 发布它,在服务器上我看到以下是正确的: { _id: 52498b56904ee108c99fbe88, name: ‘Joe Bloggs’} 问题是,当我执行GET时,我在客户端上获得的ObjectId是{0000000000000 …},即不是{5249 …..}我期望的。 原始响应显示正确的值,但是一旦我反序列化,我就会松开它。 ObjectIdConverter代码是: public class ObjectIdConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { […]

从C#2.1驱动程序正确关闭MongoDB数据库连接?

我刚刚开始将MongoDB集成到我的应用程序中,我遇到了一些问题。 在我的应用程序中,我使用最新的2.1版MongoDB C#驱动程序,并仅使用MongoDB进行应用程序日志记录。 目前在显示我的主要申请Form我首先检查mongod.exe是否正在运行,如果没有,我启动它。 然后,当我的主Form显示时,它会打开一个与数据库的连接,以供下面使用。 public void Open() { Client = new MongoClient(“mongodb://localhost:27017”); Database = Client.GetDatabase(DBName); Collection = Database.GetCollection(ColName); } 我的问题是当我的应用程序关闭时我应该如何正确关闭此连接? 还有一些注意事项我应该考虑在每次应用程序关闭时运行mongod.exe而不是退出吗? 我已经搜索了几次试图找出是否有一种正确的方法来关闭连接,但没有找到任何非常具体的方法。 有一个旧的SOpost(我现在似乎无法找到)提到.Dispose方法,虽然我似乎无法在最新的驱动程序中找到它,也无法从我的IDE自动完成。

在更新文档中的数组时,如何在MongoDB和C#中使用$ push update修饰符

我在mongo shell中运行以下代码: db.unicorns.insert({name: ‘Dunx’, loves: [‘grape’, ‘watermelon’]}); 现在我在MongoDB集合中有类似的东西: {name: ‘Dunx’, loves: [‘grape’, ‘watermelon’]} 正如你所看到的, loves是一个arrays。 题 如何使用官方C#驱动程序编写C#代码,执行以下操作: db.unicorns.update({name: ‘Aurora’}, {$push: {loves: ‘sugar’}}) 上面的代码在mongo shell中运行得很好。

MongoDB.Driver.Builders如何分组并获得平均值

我们正在使用C#MongoDB驱动程序,我们希望对时间戳的日期部分进行分组,并获得该日期的平均值。 问题是我们无法使用构建器为组找到正确的synthax。 此代码显示了如何使用BSON文档创建组,但我们发现synthax不清楚阅读并且非常令人困惑! 所以正在寻找正确的构建器synthax。 我们想使用Builders,因为它更多地用C#键入,然后在管道中使用带有BsonDocuments的方法。 这是一个代码片段,其中前3个操作有效,但我们无法找到GroupBy。 DateTime from = new DateTime(2014, 12, 2); DateTime to = new DateTime(2014, 12, 4); var id = “37d163c0-44cc-4907-94cf-1e26b5eec911”; var grp = new BsonDocument { { //Sort the documents into groups “$group”, new BsonDocument { //Make the unique identifier for the group a BSON element consisting // of a field […]

如何检查与mongodb的连接

我使用MongoDB驱动程序连接到数据库。 当我的表单加载时,我想设置连接并检查它是否正常。 我是这样做的: var connectionString = “mongodb://localhost”; var client = new MongoClient(connectionString); var server = client.GetServer(); var database = server.GetDatabase(“reestr”); 但我不知道如何检查连接。 我尝试将此代码与try-catch重叠,但无济于事。 即使我创建了一个不正确的connectionString,我仍然无法获得任何错误消息。

使用BsonRepresentation(BsonType.ObjectId)与BsonId对比ObjectId来装饰C#中的属性之间的区别

我是mongodb的新手并且很喜欢不用担心架构的问题,我有一个问题,假设你想在mongo中使用Id属性而mongo使用ObjectId来表示属性Id,到目前为止我看到你可以拥有或装饰一个Id如下, public ObjectId Id {get; set;} //or [BsonId] public string Id {get; set;} //or [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string Id {get; set;} 任何人都可以向我解释为什么大多数人会选择最后一种类型,以及最新情况以及灵活性如何帮助。 谢谢?