MongoDB – 将文档转换为其他文档并使用Nodejs进行更新

我计划将MongoDB NoSQL数据库用于video游戏,但是我想知道一些我不太清楚的东西,到目前为止我还没有find答案。

我明白,可以将文档实例(例如汽车)存储到另一个文档实例(用户)中,但是这是如何工作的? 因为如果它是一个有价值的拷贝,如果我更新我的汽车,用户将有一辆不是最新的汽车! 所以我想这是一个参考的副本。 或者,也许它不是一个副本,而是直接的某种奇怪的链接,比如我们用ID字段来处理SGBD数据库。

但是,另一件事,如果我更新我的模式(我肯定),新的字段或旧的旧字段将不会在现有的数据更新…看起来这是一个知道的问题,有一些解决scheme,你有没有解释如何处理这个问题的好链接? 我只是想在这里,我的数据库没有写,我想作出关于devise的最佳select。 我以前从来没有使用过NoSQL的东西,我试图去devise它,但是我仍然有很多被SGBD DB误解和“糟糕”的实践。

顺便说一句,MongoDb是一个安全漏洞(默认情况下没有密码等),你有链接来保护与mongoDb的数据库? 谢谢。

我只是自己学习Mongo,但是我希望能提供一些帮助。 注意Mongo是一个无模式数据库的概念,这意味着一个用户可能有一辆车,另一个没有车,而其他车有不同的车。 所以,如果你想更新汽车定义,你需要相应地修改现有的用户文件。 这辆车没有中央的定义 – 即与RDBMS中的中央车表没有任何关系。

您可以使用Mongoose Schema向Mongo添加一些结构。 这允许一些灵活性来更改模式,例如可以添加新属性并应用默认值,这意味着您不需要更新现有文档。 即:

之前

var Book = new Mongoose.Schema({ title: {type: String} }); 

 var Book = new Mongoose.Schema({ title: String category: {type: String, default: 'fiction'} });