Tag: mongodb

使用’ObjectId’查询MongoDB

我已经将document插入MongoDB而没有id 。 我想通过搜索默认分配的MongoDB ObjectId来检索它们。 这是我的尝试 – var query_id = Query.EQ(“_id”, “50ed4e7d5baffd13a44d0153”); var entity = dbCollection.FindOne(query_id); return entity.ToString(); 我得到以下错误 – 发生了’System.NullReferenceException’类型的第一次机会exception 问题是什么?

将Dictionary 序列化为BSON时的BsonSerializationException

我最近从已弃用的v1.9转移到了新的MongoDB C#驱动程序v2.0 。 现在,当我序列化一个有字典的类时,我有时遇到以下BsonSerializationException : MongoDB.Bson.BsonSerializationException:使用DictionaryRepresentation.Document时,键值必须序列化为字符串。 这是一个最小的重现: class Hamster { public ObjectId Id { get; private set; } public Dictionary Dictionary { get; private set; } public Hamster() { Id = ObjectId.GenerateNewId(); Dictionary = new Dictionary(); Dictionary[DateTime.UtcNow] = 0; } } static void Main() { Console.WriteLine(new Hamster().ToJson()); }

将SQL表转换为mongoDB文档

将一个SQL数据库(例如1个表)转换为mongoDB文档的最佳方法是什么? 我想我可以使用C#驱动程序并实现一个循环,它选择表中的每一行并将其保存在Mongo中。但是,我正在寻找一种更好的方法来转换大量数据..

将FilterDefinition 转换为我可以在mongo shell中运行的常规json mongo查询

我有很多复杂的查询,我有时希望直接检查Mongo的调试\解释()目的。 使用较新的2.0+ c#驱动程序,我不知道如何做到这一点。 在之前的版本中有一个名为IMongoQuery的东西, 这很有效。 一个简单的例子: FilterDefinition filter = Builders.Filter .Where(e => ids.Contains(e.Id) && e.Deleted != true );

MongoDB引用的最佳实践

我想知道使用引用进行建模的最佳实践是什么情况。 我正在使用MongoRepository库。 public class User : Entity { publis string Id { get; set; } public string Email { get; set; } public string Password { get; set; } } public class Post : Entity { public string Id { get; set; } public string Title { get; set; } public string Summary { get; […]

我可以使用mongodb c#驱动程序进行文本查询

有没有办法将shell查询语法中表达的查询提交给mongo c#驱动程序 比如说像 Coll.find { “myrecs”,”$query : { x : 3, y : “abc” }, $orderby : { x : 1 } } “); 以shell指南为例

MongoDB C#:ID序列化最佳模式

我有一个类User ,我需要在Web服务中使用它们。 然后问题是,如果我尝试序列化类型为BsonObjectId Id ,我看到它有一个空属性,有一个空属性,依此类推…… 我按顺序编写了这个解决方法,这是一个很好的解决方案吗? public partial class i_User { [BsonId(IdGenerator = typeof(BsonObjectIdGenerator))] [NonSerialized] public BsonObjectId _id; public String Id { get { return this._id.ToString(); } } } 通过这种方式,我可以将_Id保持为BsonObjectId但是我在属性Id通过Web发送字符串表示。 另一种解决方案是使用StringObjectIdGenerator public partial class i_User { [BsonId(IdGenerator = typeof(StringObjectIdGenerator))] public String id; } 但是看到MongoDB会将string存储到数据库而不是ObjectId 。 在Web服务和/或客户端服务器(Flash + C#)等序列化环境中工作的最佳方法是什么?

Mongo DB对象Id使用JSON序列化程序进行反序列化

var docToJson = doc.ToJson(); story Featured = JsonConvert.DeserializeObject(docToJson); public class story { [JsonProperty(“_id”), JsonConverter(typeof(ObjectIdConverter))] public ObjectId Id { get; set; } …. public class ObjectIdConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { serializer.Serialize(writer, value.ToString()); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JToken token […]

2.0驱动程序中的MongoServer.State等价物

在旧的API(1.X)中,您可以使用MongoServer返回的MongoServer实例上的State属性来判断服务器是否已连接: public bool IsConnceted { get { return _client.GetServer().State == MongoServerState.Connected; } } 但是, GetServer不是新API(2.0)的一部分。 怎么能实现呢?

在没有属性的类上全局使用JsonConverter

我有一个MVC .net项目,我正在使用mongodb。 我使用自定义JsonConverter将ObjectId属性序列化为字符串,正如我在这个答案中描述的那样: 在MVC中自动将mongodb ObjectId作为字符串与Json.NET一起重新编写 在那里我使用了一个属性,以便自定义转换器用于某个属性: [JsonConverter(typeof(ObjectIdConverter)) 有没有办法告诉序列化器在ObjectId类型的所有属性上使用ObjectIdConverter? 我不想继续讨论整个项目并添加这个属性。 谢谢!