Tag: mongodb

如何为MongoDb命名空间中的所有类注册ClassClassMap?

MongoDB驱动程序教程建议将类映射注册到automap via BsonClassMap.RegisterClassMap(); 我想自动化给定命名空间的所有类,而不是为每个类显式写下RegisterClassMap。 这目前可能吗?

使用.NET驱动程序2.0在MongoDB中构建索引

使用新驱动程序2.0构建索引的新方法是什么? 没有关于此的任何文档。 显然这现在适用于新的IndexKeysDefinitionBuilder接口,但这是我到目前为止所有。

MongoDb C#GeoNear查询构建

如何使用C#驱动程序和GeoNear方法在MongoDB中查询附近的地理点? 以下返回具有错误距离值的点: var results = myCollection.GeoNear( Query.GT(“ExpiresOn”, now), // only recent values latitude, longitude, 20 ); 我怀疑我应该告诉Mongo查询double [] Location字段,但我不知道查询语法。

MongoDB C#驱动程序 – 如何将_id存储为ObjectId但是映射到字符串Id属性?

我无法让我的模型将实体的Id属性表示为字符串,但将其自动生成并由MongoDb在内部表示为本机ObjectId 。 class Account { public string Id { get; set; } … } class AccountStore { static AccountStore() { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.SetIgnoreExtraElements(true); // map Id property here }); } public void Save(Account account) { _accounts.Save(account); } } 对于上面代码中的// map Id property here行,我尝试了许多不同的配置Id映射的方法,但没有一种方法有效。 我尝试过的方法以及调用Save方法时抛出的相关exception是: // Exception: No IdGenerator found. cm.IdMemberMap .SetRepresentation(BsonType.ObjectId); // Exception: […]

从MongoDB’集合’获取所有’文档’

我需要检索MongoDB中我的集合中的所有文档,但我无法弄清楚如何。 我已经宣布我的’collections’像这样 – private static IMongoCollection SpeCollection = db.GetCollection(“collection_Project”); 我按照MongoDB教程中的说明进行了操作。 我根据自己的需要调整了它,比如 – var documents = await SpeCollection.Find(new Project()).ToListAsync(); 但是,我一直有以下错误 – MongoDB.Driver.IMongoCollection没有’Find’的定义和扩展方法[superlong stuff]的最佳覆盖。 查找包含无效的参数。

在Mongo DB中升级和Id问题

使用官方C#驱动程序向mongo db发送插件时遇到问题。 public abstract class AggregateRoot { /// /// All mongoDb documents must have an id, we specify it here /// protected AggregateRoot() { Id = ObjectId.GenerateNewId(); } [BsonId] public ObjectId Id { get; set; } } 我的实体已经拥有了id-s但我必须创建mongo特定的ID才能使用,因为集合中的所有文档都应该有一个。 现在我在我的系统中收到一个新实体,生成一个新的Mongo Id,我得到的mongo无法更改文件旧exception的_id 。 有一些解决方法吗? 让我来描述一下设计。 将作为文档存储的所有实体都inheritance自AggregateRoot,其中包含id生成。 每个子文档都自动生成了id,我对此没有任何问题。 引入AggregateRoot中的id是为了在从MongoCollection到List检索数据时纠正问题,并且引入了生成,因此id-s不同。 现在我们可以移动id生成来保存方法,因为更新的新实体有一个新的id生成。 但这意味着团队中的每个开发人员都不能忘记在存储库中生成id-s,这是有风险的。 如果可能的话,忽略id而不是mongo的映射会更好,而根本就没有AggregateRoot类

MongoDb c#driver按字段值查找数组中的项目

我发现检查的方法是在简单数组中包含的值: var filter = Builders.Filter.AnyEq(x => x.Tags, “mongodb”); 但是如何通过具体领域找到包含许多字段的复杂项目? 我找到了用BsonDocument构建器通过点符号方法编写它的方法,但是如何使用类型化的lambda符号呢? UPD 我觉得它有点像 builderInst.AnyIn(p => p.ComplexCollection.Select(ml => ml.Id), mlIds) 但现在无法检查,有人可以帮忙吗?

使用C#/ ASP.net MVC建模NoSQL论坛应用程序

我目前正在开发一个基于论坛(问题/答案)的应用程序。 使用C#ASP.net MVC和MongoDB进行数据存储。 我正在看模型。 我想要有这样的单独的类:(简化) public class Question { public string ID { get; set; } public string Title { get; set; } public string Body { get; set; } public List Tags { get; set; } public DateTime DateCreated { get; set; } public string ForumID { get; set; } } 回答 public class […]

使用c#驱动程序将Dictionary插入MongoDB

我处于无法预测MongoDB文档将包含哪些字段的情况。 所以我不能再创建一个具有BsonID类型的_id字段的BsonID 。 我发现创建一个Dictionary(HashTable)并在我的需要中多次添加我的DateTime和String对象非常方便。 然后我尝试将生成的Dictionary对象插入MongoDb,但默认序列化失败。 这是我的类型HashTable的对象(像一个字典,但里面有不同的类型): { “_id”:””, “metadata1″:”asaad”, “metadata2”:[], “metadata3”:ISODate(“somedatehere”)} 而我得到的驱动程序的错误是: Serializer DictionarySerializer期望类型为DictionarySerializationOptions的序列化选项,而不是DocumentSerializationOptions 我用Google搜索,但找不到任何有用的东西。 我究竟做错了什么?

将BSON数组添加到MongoDB中的BsonDocument

如何使用C#驱动程序将BsonArray添加到MongoDB中的BsonDocument? 我想要一个像这样的结果 { author: ‘joe’, title : ‘Yet another blog post’, text : ‘Here is the text…’, tags : [ ‘example’, ‘joe’ ], comments : [ { author: ‘jim’, comment: ‘I disagree’ }, { author: ‘nancy’, comment: ‘Good post’ } ] }