问题标签 [norm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - MongoDB中的数据重复太多?
我对这整个 NOSQL 都是新手,最近对 mongoDB 很感兴趣。我正在从头开始创建一个新网站,并决定使用 MONGODB/NORM(用于 C#)作为我唯一的数据库。我一直在阅读很多关于如何正确设计文档模型数据库的内容,并且我认为在大多数情况下我的设计都做得很好。我进入新站点大约 6 个月,我开始看到我需要一遍又一遍地处理的数据复制/同步问题。从我读到的内容来看,这在文档模型中是预期的,并且对于性能来说它是有意义的。IE 将嵌入的对象粘贴到文档中,以便快速阅读 - 无需连接;但当然你不能总是嵌入,所以 mongodb 有一个 DbReference 的概念,它基本上类似于关系数据库中的外键。
所以这里有一个例子:我有用户和事件;两者都有自己的文档,用户参加活动,活动有用户参加者。我决定将包含有限数据的事件列表嵌入到用户对象中。我将用户列表也嵌入到事件对象中作为他们的“参与者”。现在的问题是我必须使用户与也嵌入在事件对象中的用户列表保持同步。当我读到它时,这似乎是首选方法,也是 NOSQL 做事的方式。检索很快,但回退是当我更新主用户文档时,我还需要进入事件对象,可能找到对该用户的所有引用并更新它。
所以我的问题是,这是人们需要处理的一个非常普遍的问题吗?在您开始说“也许 NOSQL 策略不适合我在这里尝试做的事情”之前,这个问题必须发生多少?什么时候不必进行连接的性能优势变成了劣势,因为您很难在嵌入式对象中保持数据同步并对数据库进行多次读取以做到这一点?
c# - Mongodb NoRM 和 POCO
我正在 C# 中尝试使用 Mongodb 和 NoRM。
从我所读到的唯一标识 Mongodb 中的文档的 ObjectId 是一种“特殊” Guid(在某种意义上是唯一的),但其中有一些重要的部分允许更容易的排序和索引(时间戳,机器哈希,processId 并在其中递增)。
我想用自动生成的 Guid 作为 Id 让我的对象真正保持 POCO,因此没有像 ObjectId 这样的外部类型,这会阻止我迁移到另一种技术或回到经典的 Ado.net 或 Nhibernate 东西。
另一种选择是在 POCO 中使用 Id 作为字符串并使用ObjectId.NewObjectId().ToString()
它的最佳实践是什么?
c# - 使用 C#/ASP.net MVC 建模 NoSQL 论坛应用程序
我目前正在开发一个基于论坛(问题/答案)的应用程序。
使用 C# ASP.net MVC 和 MongoDB 进行数据存储。
我现在正在看模型。
我正在考虑有这样的单独类:(简化)
回答
我的问题是:
如何处理“回复”
我最好有(如上面的模型)两个独立的“实体”
还是我的问题模型中应该有一个答案列表?
一些要求是我需要能够显示答案的数量等......
将其存储在 NoSQL 数据库中,我知道我应该对事物进行非规范化,但是如何在不检索整个帖子的情况下插入答案?使用 NoRM 和 MongoDB 可以进行这种操作吗?
f# - 使用 NoRM 从 F# 访问 MongoDB
从 F#测试 NoRM https://github.com/atheken/NoRM并尝试找到一种使用它的好方法。这是基本的C#:
这工作正常,但这是我从 F# 访问它的方式:
有没有更简单的方法来创建类或类型以传递给泛型方法?
这是它的名称:
mongodb - 如果我使用 norm 或 csharp-mongodb 驱动程序,如何在 mongodb 中添加新字段
我有两个基于 mongodb 数据库的项目。一个项目使用 csharp-mongodb 和另一个 - norm 驱动程序。
我只使用 GetCollection 等通用方法向我的数据库发出请求。如何以不那么痛苦的方式向我的实体添加新字段?
例如,一开始我有
几天后我决定添加新字段
我只看到一种方法-制作实用程序,它可以获取我的实体,然后将其反序列化并转换为新类型,然后序列化为 bson。至于我——这很难——因为我有超过 100 万条记录。
我知道 csharp mongodb 驱动程序有能力使用文档网:)
mongodb - 使用 NoRM for MongoDB 中的 HiLoIdGenerator 创建唯一标识符
我一直在努力使用 NoRM ( http://normproject.org/ )附带的 HiLoIdGenerator ;我想用它来生成一个唯一标识符,我可以将它用作我的博客文章的 SLUG。目前,我使用 ObjectId 来唯一标识 MongoDB 中的文档,但由于这类似于 GUID,并且在 URL 中看起来不太好,我更喜欢使用类似 www.myblog.com/posts/1243 和所以这就是我决定使用 HiLoIdGenerator 的原因。
我想在客户端生成我的 HiLo id,我在 stuart harris 的博客http://red-badger.com/Blog/post/A-simple-IRepository3cT3e-implementation-for-MongoDB-and-NoRM上阅读.aspx,NoRM 的新 HiLo Id 生成器也允许这样做,方法是为客户端会话分配一个整数范围,可以不受惩罚地使用(其他客户端将使用不同的范围)但是当我打开 HiLoIdGenerator 时,它说 HiLoIdGenerator类使用 HILO 算法生成一个新的标识值。在您的项目中只应使用此类的一个实例。
我真的有三个问题:
1) 如果我的应用程序中有多个 HiLoIdGenerator 实例(假设我的服务类中有一个实例,它为每个新文档调用 GenerateId),我实际上可以保证我的所有 id 都是唯一的,因为代码HiLoIdGenerator 类说应用程序中应该只有这个类的一个实例?
2) HiLoIdGenerator 构造函数接受一个容量参数,我想知道它的作用,我传递了 0 并且所有生成的 Id 都是相同的,然后我传递了 1 个新的 HiLoIdGenerator(1) Id 从 1 开始并且是加 1;我不太了解它的作用,但我假设它与生成器可以生成的一系列潜在值有关,但我不确定,我想成为。有人可以解释这个论点吗?
3) 我想我理解 HiLo 算法的目的,如此处所述什么是 Hi/Lo 算法?但我不明白的是我是否可以有两个不同的应用程序的 MongoDB 实例,每个应用程序都查看 MongoDB 的不同实例但都包含相同的集合类型,生成的 id 是否是全局唯一的,即,我可以使用它们我想要一个 GUID 的方式,或者它们只是在给定的 MongoDB 实例中是唯一的,因此排除了以后将两个集合合并到一个 MongoDB 实例中?
谢谢
c# - 精确包含子集合上的匹配
使用带有 NoRM 驱动程序的 mongodb 我有这个文档:
我正在查询:
其中 showNames 是一个字符串 [] 包含类似 {"House", "Glee", "30 Rock"}
我的结果包含模糊匹配。例如,术语“House”返回每个带有标题的节目,其中包含单词 House(就像它在做 Contains 一样)。
我想要的是直接匹配。因此,如果 document.Titles 包含“A big blue House”,它不会返回匹配项。仅当 Titles.Description 包含“House”时,我才会想要匹配。
c#-4.0 - NoRM MongoDB:构建复杂的过滤器或向现有查询添加过滤器
如何在 Norm 驱动程序中构建多标准查询,为一个现有的基本查询添加额外的过滤器?谢谢。
mongodb - C# MongoDB 驱动程序故障(NORM)
我在生产中使用了 NORM 驱动程序。新年假期 - 这很酷,所以我的项目负载很高,我想设置一个复制集,但有一个问题 - Norm 不支持复制集:( . 据我所知分片?
帮助我:) 谁使用了 mongodb csharp 或官方 10gen 驱动程序和 replset?生产有问题吗?如果我选择另一个驱动程序,我将不得不重写存储库,但我不希望它徒劳无功。是不是有些问题?
c# - DbReference 与自定义 MongoIdentifier (MongoDB & NoRM)
我是一个新的 Mongo 用户(甚至不习惯这个名字......每次都让我发笑),我有这个问题(感觉 mongo)。
我有一个“用户”类,MongoIdentifier 定义如下:
在另一个类“角色”中,我有一个DbReference
看起来像这样的:
这编译得很好,但是当我尝试像这样设置 Creator 时:
我收到以下错误:
System.FormatException:找不到任何可识别的数字。
任何想法为什么?
谢谢