Tag: mongodb .net driver

如何从C#调用MongoDb中存储的JavaScript

我正在评估将SQL Server数据库移植到MongoDb。 问题是移动存储过程,我读了MongoDb存储的JavaScript,我想在.Net中进行一些测试。 我已经安装了MongoDb驱动程序2.4.0并在名为test_function上创建了这个函数: function (x) { return x; } 这是我用来尝试调用该函数的代码: MongoClient oMongoClient = new MongoClient(Properties.Settings.Default.MongoCN); IMongoDatabase oMongoDatabase = oMongoClient.GetDatabase(“test_db”); var result = oMongoDatabase.RunCommand(“test_function(3)”); 我收到此错误: MongoDB.Bson.dll中出现未处理的“System.FormatException”类型exception。附加信息:JSON reader期望一个值,但找到了’test_function’。

MongoDB c#驱动程序 – 名为Id的字段可以不是Id吗?

更特别的是,有一堂课 class X { …. string Id { get; set; } } class Y : X { ObjectId MyId { get; set; } } 我希望MyId成为Y的id,即映射到_id。 可能吗? 我在这段代码后得到一个例外: var ys = database.GetCollection(“ys”); ys.InsertBatch(new Y[] { new Y(), new Y()}); 例外:{“类’MongoTest1.Y’的成员’MyId’不能使用元素名称’_id’,因为它已被成员’Id’使用。”} 完整的测试案例: using System; using System.Collections.Generic; using System.Linq; using System.Text; using MongoDB.Bson; using MongoDB.Bson.Serialization; using MongoDB.Driver; namespace […]

如何使用c#驱动程序在MongoDB中创建新数据库

我已阅读mongodb文档,似乎无法找到如何创建新数据库。 例如,在文档中,它说我可以像这样访问“测试”数据库: db.test.find() 现在,如果我想使用如下语法创建自己的数据库呢? db.MyDB.find() 另外,有没有我可以在线阅读的文档我可以进一步阅读使用DOS界面和c#驱动程序创建数据库和集合?

嵌套文档上的MongoDb TTL是否可行?

我想知道是否可以在嵌套文档上使用TTL。 脚本 我有Account ,里面有Sessions 。 Sessions需要在30分钟后到期。 我已经设置了所有内容,但显然当我在Account.Sessions.EndDateTime上设置TTL索引时,它会删除整个Account 。 我可以确保它只删除Session吗? 这就是它在数据库中的样子。 请注意它将如何删除整个Account ,而不仅仅是在EndDateTime到来时Session 。 { “_id” : ObjectId(“53af273888dba003f429540b”), “Email” : “steve@s3te5ve.com”, “PasswordHash” : “CZaBEQRbwWNgJBjyhks7gH0Z3v5ZvDkW29pryF0DEXyE8rIw0NA4x39+uQneArKaUv97sP1e+e22YT1glbqQsw==”, “PasswordSalt” : “100000.Qx4D8uj7oDcWHRTLGRRTDwVkw2UcaM52XkDR9k2ga073Ow==”, “Sessions” : [ { “Token” : “da55cf0783c4249b26283948fcae6caa15df320ca456203045aea81cad691df8”, “IpAddress” : “::1”, “StartDateTime” : ISODate(“2014-06-28T20:36:27.000Z”), “EndDateTime” : ISODate(“2014-06-28T21:06:27.000Z”) } ] } 这是我创建索引的地方。 if (!_db.Accounts.IndexExists(“Sessions.EndDateTime”)) { _db.Accounts.CreateIndex(IndexKeys.Ascending(“Sessions.EndDateTime”), IndexOptions.SetTimeToLive(new TimeSpan(0))); }

MongoDB C#驱动程序使用动态对象进行序列化

我有一个看起来像这样的模型: public class Record { public Record() { Created = DateTime.Now; } public string Id { get; set; } public string ApplicationId { get; set; } public Dictionary Values { get; set; } public DateTime Created { get; set; } } 使用MongoDB C#驱动程序存储在MongoDB中。 当我做以下事情时,这很有效: { applicationId: “52f52db8008a280f583c9ff6”, values: { “52f9410a324e68055f39f8c0”: 245234 “52f941096d82a531e700e56b”: “sdfasdf” “52fa4a96e0b2e0d4e61d0a03”: “52fa4a9b91c477e367ab99e6” […]

Mongodb认证

如何通过官方c#驱动程序使用mongodb身份validation? 除了内部成员之外,我找不到任何API方法进行身份validation。

在C#中从mongodb获取单个对象

我已经选择了一段使用MongoDB驱动程序的代码来从集合中获取单个对象……这可能不对,可以吗? 有更好的方法来获得这个吗? IMongoCollection userCollection; …. userCollection.FindAsync(x => x.Id == inputId).Result.ToListAsync().Result.Single();

使用BinData进行MongoDump查询

Mongodump文档指定您可以使用特定查询进行转储 即 mongodump –host localhost –db mydb –collection testCollection –query “{SomeKey: ‘some value’}” 我将_ids字段存储为BinData,是否可以对此进行查询? 我试过了 mongodump –host localhost –db mydb –collection testCollection –query “{_id: ‘BinData(3,ryBRQ+Px0kGRsZofJhHgqg==)’}” 没有运气。

MongoDB:仅更新特定字段

我试图用C#驱动程序更新(类型)MongoDB集合中的行。 处理MongoCollection类型的特定集合的数据时,我倾向于避免从集合中检索敏感数据(salt,密码哈希等) 现在我正在尝试更新User实例。 但是,我从来没有真正检索过敏感数据,所以我想在应用修改并将新数据提交给之前,这个数据在检索到的模型实例中是default(byte[]) (据我所知)。采集。 也许我正在监督MongoDB C#驱动程序中的一些微不足道的工具如何使用MongoCollection.Save(T item)而不更新MongoCollection.Save(T item)等特定属性? 我应该首先检索完整记录,在那里更新“安全”属性,然后将其写回? 或者有一个奇特的选择从更新中排除某些字段? 提前致谢

MongoDB如何检查是否存在

我想知道如何使用mongoDB和C#检查对象的存在。 我已经找到了一种方法,但是由于Any()方法,我不得不使用Linq,但是我想知道如果没有Linq可以做到这一点吗? database.GetCollection(“Applications”).Find(Query.EQ(“Name”, applicationName)).Any() 多谢你们!