gpt4 book ai didi

node.js - MongoDB - 将文档写入其他文档并使用 Nodejs 进行更新

转载 作者:太空宇宙 更新时间:2023-11-03 23:42:24 24 4
gpt4 key购买 nike

我计划在视频游戏中使用 MongoDB NoSQL 数据库,但我想知道一些我不太清楚的事情,而且到目前为止我还没有找到答案。

我知道可以将一个文档实例(例如汽车)存储到另一个文档实例(用户)中,但是这是如何工作的?因为如果是按值复制,如果我更新我的汽车,用户将拥有一辆不是最新的汽车!所以我想这是一个引用副本。或者它可能不是副本,而是直接某种奇怪的链接,就像我们过去对带有 ID 字段的 SGBD 数据库所做的那样。

但是,另一件事是,如果我更新架构(我肯定会更新),则以前存在的新字段或旧字段将不会在现有数据中更新......看起来这是一个已知问题并且有一些解决方案,您有任何好的链接来解释如何处理这个问题吗?我只是在这里想,我的数据库没有写,我想对设计做出最好的选择。我以前从未使用过 NoSQL 东西,我正在尝试设计它,但我仍然对 SGBD DB 有很多误解和“糟糕”的实践。

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

最佳答案

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

您可以使用Mongoose Schemas向Mongo添加一些结构。这为架构更改提供了一定的灵 active ,例如您可以添加新属性并应用默认值,这意味着您不需要更新现有文档。即:

之前

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

之后

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

关于node.js - MongoDB - 将文档写入其他文档并使用 Nodejs 进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com