MongoDB与模式布局的混淆



我在概念化MongoDB数据库时遇到了问题。我看了一些速成课程,并就这个主题做了一些阅读。但我还没有发现模式是如何形成的;概念化";。我目前的理解是,mDB只需获取你提供给它的所有文档,并将它们放入一个巨大的";框";您根据ID或标识符(例如";SELECT*of";类型":"foo";。

这是正确的想法吗?我是不是只是把所有的文件都放进一个巨大的盒子里,让机器筛选所有的文件?

所以,我回答了我自己的问题,因为我终于在玩这个主意的时候得到了它;视觉上";

这是一个巨大的盒子,里面装满了";集合";你打电话的地方。

你用";使用myNewDB";这将创建数据库,但在放入文档之前不会存储

对于单个文档,您可以使用";myNewDb.insert({FirstName:"Foo",LastName:"Bar"}(";

但是,如果您想将特定的文档放在一起并彼此分离,则应该进行收集。

制作集合:;myNewDB.users.insert({userId:1,FirstName:"Foo",LastName:"Bar"}(";

";。用户";引用一个集合,如果该集合不存在,则使用该集合或创建该集合。

添加";userId:1";是一个很好的做法,就好像你选择删除这个用户,而不是删除所有名为"的用户;Foo Bar";,您可以找到名为"的用户;Foo Bar";并根据它们的"大小"适当地去除正确的一个;userId";。

为了去除适当的";Foo Bar";,首先搜索具有以下名称的所有用户:"从myNewDB.users中选择*";

这将显示所有用户,找到正确的一个删除,在我们的情况下,唯一的";Foo Bar";并通过以下方式删除:"myNewDB.users.remove({userID:1}(">

这将删除所有具有"实例的文档;userId:1";。

不过要注意,不正确的数据输入可能会导致多个用户意外地拥有相同的userId,因此在删除所有带有"的条目之前要小心;userId:x";

最新更新