Tag: mongodb

使用C#计算嵌套对象的数量

我正在使用ASP.Net core 2.0 web api开发一个软件。 我需要计算我的集合中某些字段的数量。 我在MongoDB的集合中有数据,如下所示。 我需要找到我的collections中有多少个标签和多少个传感器。 特定端点具有多个标签,每个标签具有多个传感器。 { “_id” : ObjectId(“5aef51dfaf42ea1b70d0c4db”), “EndpointId” : “89799bcc-e86f-4c8a-b340-8b5ed53caf83”, “DateTime” : ISODate(“2018-05-06T19:05:02.666Z”), “Url” : “test”, “Tags” : [ { “Uid” : “C1:3D:CA:D4:45:11”, “Type” : 1, “DateTime” : ISODate(“2018-05-06T19:05:02.666Z”), “Sensors” : [ { “Type” : 1, “Value” : NumberDecimal(“-95”) }, { “Type” : 2, “Value” : NumberDecimal(“-59”) }, { […]

具有连接字符串的mongodb身份validation

Mongo进程的连接字符串具有/ database选项。 这是什么意思? 这是否意味着它在mongo服务器上validation特定数据库。提前谢谢

将对象反序列化为MongoDB C#Driver的接口

我正在开发一个使用MongoDB (带有C#驱动程序)和DDD的项目 。 我有一个类( 聚合 ),它具有一个类型是接口的属性。 在另一个类中,我实现了这个接口。 此类具有另一个属性,其类型是接口,并使用另一个实现的类进行设置。 下面的代码解释得更好: // Interfaces public interface IUser { Guid Id { get; set;} IPartner Partner{ get; set; } } public interface IPartner { IPhone Mobile { get; set; } } public interface IPhone { string number { get; set; } } // Implemented Classes public class User: IUser […]

对象的MongoDB关系

请原谅我的英语,我仍然想要掌握它。 我已经开始学习MongoDB(来自C#背景),我喜欢MongoDB的想法。 我在互联网上有一些例子。 以流行的博客文章/评论为例。 post没有或与之相关的许多评论。 我创建Post对象,向Post中的IList添加一些Comment对象。 没关系。 我是否只将其添加到MonoDB中的“post”集合中,还是应该有两个集合 – 一个是blog.posts和blog.posts.comments? 我有一个公平复杂的对象模型,最简单的方法是将其视为银行系统 – 我们的是采矿业。 我试图用方括号突出显示表格。 [用户]有一个或多个[帐户]有一个或多个[交易] ,其中只有一个[类型] 。 [Transactions]可以为交易分配一个或多个[Tag] 。 [用户]创建他们自己的[标签]对该用户帐户是唯一的,我们有时需要提供这些标签的报告(例如,5月,标签钻孔费用为123456.78美元)。 对于索引,我会认为分离它们会很好但是我担心从旧的RBDMS时代这个想法是不好的做法。 在某种程度上,它就像博客的例子。 我不确定我是否应该拥有1个[帐户]集合并在那里保留所有信息,或者有一个中间步骤将其拆分为单独的集合。 另一个相关的问题是,当你来回持续时,你通常会收回与该记录相关的所有内容 – 即使不是必需的,还是你限制?

C#mongo使用json字符串查询

这看起来很基本,我确信我只是忽略了某个地方的某个阶级或方法,但对于我的生活,我找不到它。 我有一个像这样的json字符串: { SendId: 4, “Events.Code” : { $all : [2], $nin : [3] } } 我可以在mongo shell中对find()或count()运行它,并得到我正在寻找的东西。 在C#中处理这个问题最简单的方法是什么? 这是我发现的: 我发现的方法都想要一个IMongoQuery ,它只是一个标记接口 BsonDocument有一个很好的Parse方法,但它没有实现IMongoQuery QueryDocumentinheritance自BsonDocument ,它确实实现了IMongoQuery ,但它没有自己的Parse方法,我无法将QueryDocument转换为BsonDocument Aggregation框架采用BsonDocument [],但有时我只想要一个简单的Find或Count操作 其中一些查询很大且很粗糙,我不想在Query构建器类中一次构建它们 如果数据库处理json文档,并且我可以在shell中运行这些东西,是不是有某种方法可以通过驱动程序运行它?

字典 -to-BsonDocument转换省略_t字段

我正在使用ToBsonDocument扩展方法来转换这个字典: var dictionary = new Dictionary {{“person”, new Dictionary {{“name”, “John”}}}}; var document = dictionary.ToBsonDocument(); 这是结果文件: { “person” : { “_t” : “System.Collections.Generic.Dictionary`2[System.String,System.Object]”, “_v” : { “name” : “John” } } } 有没有办法摆脱这些_t / _v的东西? 我希望生成的文档看起来像这样: { “person” : { “name” : “John” } } UPD:我在DictionaryGenericSerializer中找到了代码: if (nominalType == typeof(object)) { var actualType = value.GetType(); […]

在MongoDB C#驱动程序中获取生成的脚本

我使用的是MongoDB.Driver 2.0.0。 有没有办法看到从linq到MongoDB生成的脚本? 例如,我的查询如下: IFindFluent findFluent = Collection.Find( x => hashValues.Contains(x.UrlHash) && x.ProductTopic == topicId); 如何(或更复杂的查询)在MongoDB shell中表示?

使用C#在mongoDB中存储具有多态值的字典

让我们说我们有一个关键值,它们的意义上是多态的。 考虑下一个示例项目: public class ToBeSerialized { [BsonId] public ObjectId MongoId; public IDictionary Dictionary; } public abstract class BaseType { } public class Type1 : BaseType { public string Value1; } public class Type2:BaseType { public string Value1; public string Value2; } internal class Program { public static void Main() { var objectToSave = new ToBeSerialized […]

如果为null或为空,请勿插入字段

我有一个带有一些字段的C#类,其中一些是null。 那些null我不想插入带有null值的db。 我根本不希望它们插入到db中。 我如何实现这一目标? class User { public string FirstName; public string LastName; public string MidName; } 并非每个用户都有MidName,但是Mongo会在MidName字段中插入带有空值的db。

如何使用MongoDB 2.0进行upsert?

MongoDB的界面与前一个界面完全不同。 在这里,您可以看到官方文档,其中包含有关如何搜索,插入和更新的一些示例,但有关upserts的内容呢? meta的想法:我试图在谷歌和SO上搜索但很多资源都是指旧界面。 也许创建一个MongoLegacy标签会很好。