Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongoDB+;mongoose:为分层数据选择正确的模式_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js mongoDB+;mongoose:为分层数据选择正确的模式

Node.js mongoDB+;mongoose:为分层数据选择正确的模式,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我是mongoDB的新手,在一个节点项目中,我使用mongoose为我的数据库创建一个模式。我已经明白,在我的情况下,我应该使用嵌入式数据,而不是通过引用。() 我需要存储在数据库中的结构如下所示: 书 |头衔 ||章 || |内容(html文件的url) 来自mySQL世界,我试图理解noSQL数据库的概念,我想知道如何设计mongoose模式 Thx,首先看一下: 我认为没有比福勒更能解释nosql的权威了。尤其是了解他的sql背景 其次,MongoDB遵循json模式。如果您知道如何使

我是mongoDB的新手,在一个节点项目中,我使用mongoose为我的数据库创建一个模式。我已经明白,在我的情况下,我应该使用嵌入式数据,而不是通过引用。()

我需要存储在数据库中的结构如下所示:

  • |头衔
  • ||章
  • || |内容(html文件的url)
来自mySQL世界,我试图理解noSQL数据库的概念,我想知道如何设计mongoose模式

Thx,

首先看一下:

我认为没有比福勒更能解释nosql的权威了。尤其是了解他的sql背景

其次,MongoDB遵循json模式。如果您知道如何使用json,您将知道如何使用nosql(mongodb)。需要了解的基本情况是,Mongo模式是用使用它的语言表示的。 因此,如果您将NodeJS与Mongo一起使用,您仍然可以使用对象和数组。简单地说,Mongo并没有强制任何特定的模式。由开发人员根据其语言/mongo驱动程序创建方案

那么,您将如何用您的语言表达您的数据逻辑呢?如果是JS对象的形式,则将该形式移动到db


我非常喜欢MongoDB,因为它可以与一些很棒的JS工具(如underline.JS)结合使用,用于各种数据操作。

您可以在MongoDB文档中嵌套文档和文档数组:

db.books.findOne();
可以返回一个JSON:

{
  isbn:"253GHST78F6",
  title:"some book",
  author:"Earnest Hemmingway",
  chapters:[
   {title:"chapter 1",content:"http://api.com/chapters/1.html"},
   {title:"chapter 2",content:"http://api.com/chapters/2.html"}
  ]
}
但是,在MongoDB中为集合建模时,还要记住以下几点:

  • 尽可能地对数据进行建模:MongoDB中没有连接,因此,尝试将所有这些数据保持在一起(预连接),这应该在将来一起查询

  • 嵌套适用于查询,但嵌套更新和搜索不适用:

  • 在嵌套文档(尤其是数组)中进行索引和搜索将非常昂贵
  • 避免将任何数据放置在嵌套数组中,因为嵌套数组经常更新
  • MongoDB中没有外键。因此,如果同一文档的多个副本嵌套在不同的集合下,则保持所有副本的更新是您的责任


  • 这可能会受益于您提供的关于一些建议的模式格式的更多内容。然后实际询问每种方法的“优缺点”,同时给出一些使用示例。看起来这就是你想要的。目前,这个问题过于宽泛。有人可能会关闭它。不要害羞,编辑。thx,我会很快编辑我的文章。thx对于电影,我刚刚看了,很好的发现。很高兴能帮助-如果你喜欢,请接受答案:)如果嵌套搜索不好,如果没有真正的关系(比如关系数据库),我会创建一个新的收藏,在那里更容易获得x作者的所有书籍,或者我可以只查询上面的模式吗?@kevinius是的,您可以通过ObjectId在集合之间链接。