gpt4 book ai didi

node.js - 您如何以及在何处定义 Meteor 中的数据库结构?

转载 作者:太空宇宙 更新时间:2023-11-03 22:47:48 25 4
gpt4 key购买 nike

我正在查看 Meteor 的文档,它给出了一些示例。我对两件事有点困惑:首先,在哪里构建数据库(考虑到安全性)?我是否将其全部保存在服务器/私有(private)文件夹中以限制客户端访问?其次,如何定义结构?例如,他们显示的代码:

Rooms = new Meteor.Collection("rooms");
Messages = new Meteor.Collection("messages");
Parties = new Meteor.Collection("parties");

Rooms.insert({name: "Conference Room A"});
var myRooms = Rooms.find({}).fetch();
Messages.insert({text: "Hello world", room: myRooms[0]._id});
Parties.insert({name: "Super Bowl Party"});

我不明白集合的结构是如何定义的。他们是否能够定义一个集合并将任意数据放入其中?

最佳答案

要回答关于在哪里放置 new Meteor.Collection 语句的第一个问题,它们应该放在客户端和服务器均可访问的文件夹中的 .js 文件中,例如 /集合。 (有一些异常(exception):任何从未同步到客户端的集合(例如服务器日志)都应在 /server 内的某个位置定义;并且任何 local collections 应在客户端代码中定义。)

关于结构的第二个问题:MongoDB 是一个文档数据库,根据定义它没有结构。根据 docs :

A database holds a set of collections. A collection holds a set of documents. A document is a set of key-value pairs. Documents have dynamic schema. Dynamic schema means that documents in the same collection do not need to have the same set of fields or structure, and common fields in a collection’s documents may hold different types of data.

您可能也听说过NoSQL。每个文档(SQL 术语中的记录)可以有不同的字段。因此,没有地方可以定义集合的初始结构;每个文档在插入或更新时都会定义其“结构”。

实际上,我喜欢在每个 new Meteor.Collection 语句上方创建一个 block 注释,解释我希望该集合中的大多数或所有文档的结构,因此我有一些东西可以引用稍后当我插入或更新集合的文档时。但在这些插入或更新函数中,我可以遵循我为自己定义的任何结构。

关于node.js - 您如何以及在何处定义 Meteor 中的数据库结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181936/

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