Tag: mongodb

MongoDB C#驱动程序类型鉴别器,generics类inheritance自非generics基类

我正在尝试使用官方C#驱动程序存储从mongodb中的非generics基类inheritance的generics类的对象列表。 我的代码如下所示: abstract class MyAbstractClass {} class MyGenericClass: MyAbstractClass { [BsonRequired] public List Values = new List(); public MyGenericClass(IEnumerable values) { Values.AddRange(values); } } class MyContainerClass { [BsonId] public string Id; [BsonRequired] public List ValueCollections = new List(); public MyContainerClass() { Id = Guid.NewGuid().ToString(); } } 在测试时,我创建了一个容器对象并用generics类的实例填充它,如下所示: var container = new MyContainerClass(); container.ValueCollections.Add(new MyGenericClass(new[]{“foo”,”bar”,”baz”})); 当我将其保存到数据库时,添加的文档如下所示: […]

C#mongodb驱动2.0 – 如何在批量操作中进行upsert?

我从1.9迁移到2.2并阅读文档我很惊讶地发现在批量操作期间不可能进行升级,因为操作不允许选项。 bulkOps.Add(new UpdateOneModel(filter, update)); collection.BulkWrite(bulkOps); 应该 options.isUpsert = true; bulkOps.Add(new UpdateOneModel(filter, update, options)); collection.BulkWrite(bulkOps); 这项工作正在进行中,有意或者我遗漏了什么? 谢谢。

使用C#聚合$ lookup

我有以下MongoDb查询工作: db.Entity.aggregate( [ { “$match”:{“Id”: “12345”} }, { “$lookup”: { “from”: “OtherCollection”, “localField”: “otherCollectionId”, “foreignField”: “Id”, “as”: “ent” } }, { “$project”: { “Name”: 1, “Date”: 1, “OtherObject”: { “$arrayElemAt”: [ “$ent”, 0 ] } } }, { “$sort”: { “OtherObject.Profile.Name”: 1 } } ] ) 这将检索与另一个集合中的匹配对象连接的对象列表。 有没有人知道如何使用LINQ或使用这个确切的字符串在C#中使用它? 我尝试使用以下代码,但它似乎无法找到QueryDocument和MongoCursor的类型 – 我认为它们已被弃用? BsonDocument document = MongoDB.Bson.Serialization.BsonSerializer.Deserialize(“{ […]

如何编写更新查询以更新mongodb中的多个字段?

如何编写此更新查询以更新c#中的mongo记录。 db.collection.update({ “S_Id” : 110 },{ “Name” : “Name1″,”Batch” : “43”,”Date”:”9/2/2011″, “Status” : 0 }); 我是这样想的 IMongoUpdate update = new UpdateDocument(); if (Named != null) { update = Update.Set(“Name”, “Name1”); } if (Date != null) { update = Update.Set(“Date”, “18/02/2013”); } if (Batch != null) { update = Update.Set(“Batch”,43); } coll.Update(query, update); 我做得正确或以何种方式做到了,请让我以正确的方式继续下去。

MongoDB复合键:InvalidOperationException:{document} .Identity不受支持

我遇到了一个问题,即为一个由复合ID组成的类进行保护,而该复合ID又有一个基类,我收到的错误是InvalidOperationException: {document}.Identity is not supported. 我试图写入数据库的类如下: public class Product : IEntity { public readonly Sku Sku; public string Name { get; private set; } public string Description { get; private set; } public bool IsArchived { get; private set; } public Identity Identity => Sku; public Product(Sku sku, string name, bool isArchived) { Sku = […]

C#:从bson文档中检索数组值

在我的MongoDB集合中,我有一个带有数组条目的文档。 如何在C#中将这些数组值作为字符串数组获取? 我可以让文档本身恢复正常,但我似乎无法获得数组值。 这是我要做的事情: QueryDocument findUser = new QueryDocument(“_id” , id); BsonDocument user = bsonCollection.FindOne(findUser); 所以在这个user文档中,有一个我想要获取并解析为字符串数组的数组。 该文档看起来像这样: { “firstname” : “jon”, “secondname” : “smith”, “loves” : [“this”,”that”,”other stuff”] }

将BSON转换为有效的JSON

BsonDocument.ToJson()方法返回无效的JSON,因为ObjectID()和ISODate不是有效的JSON。 从仲裁BSON文档中获取有效JSON的最佳方法是什么?

在.net中的mongodb中进行全文搜索

我必须在.net mvc中搜索mongodb特定集合中的所有文档中的内容。 我已经通过像这里成功创建索引一样尝试了mongodb shell。 db.collection_name.createIndex( { subject: “text” } ) db.collection_name.find( { $text: { $search: “search_word” } } ) 它工作正常。 但是,当我把它放在.net中,这给了我错误。 我用Google搜索并获得了索引的以下解决方案。 collection.EnsureIndex(new IndexKeysBuilder().Ascending(“subject”)); 现在我怎么能运行这个查询db.collection_name.find( { $text: { $search: “coffee” } } ) 。 我按照以下方式尝试.net。 collection.CreateIndex(“subject”:”text”); var query = collection.Find({ $text: { $search: “coffe” }}); 但我在第一行收到错误“表示文本为unicode系列….语法错误” 第二行错误“没有给出对应于所需forms参数的参数”和“意外字符$”。 任何建议将不胜感激。

使用官方c#驱动程序在mongodb中保存具有双向关系的对象

我有两个这样的课: public Class Company { public IList Employees; } public Class Employee { public Company WorkPlace; } 当我想保存类公司的对象时: MongoDatabase Database = MongoServer.GetDatabase(“db”); var workPlace = new Company(); var employee = new Employee { WorkPalce = workPlace} workPlace.Employees = new List{ employee }; Database.GetCollection(“company”).Save(workPlace); 将抛出StackOverFlowexception。

使用c#api创建mongodb上限集合

使用C#MongoDB驱动程序,我们目前创建我们的集合,如下所示: MongoServer mongoServer = MongoServer.Create(“some conn str”); MongoDatabase db = mongoServer.GetDatabase(“mydb”); MongoCollection logs = db.GetCollection(“mycoll”); 我想使用mycoll作为上限集合。 我没有看到任何关于如何使用C#驱动程序创建上限集合的示例或文档细节。 我发现了大量的JS示例,甚至是一个Java示例(这里: 在java中创建一个mongodb上限集合 )。 有没有人必须这样做,或者知道它是否可能在C#中?