MongoDB Compass 可视化插入子文档

5
我正在使用MongoDB Compass进行可视化构建我的集合。 在突出显示的部分,我没有看到插入子文档的“文档”类型。 我是否正确操作了? 请查看以下截图:enter image description here
6个回答

5

文档 状态:

For the field values, you can paste valid JSON that can be parsed by JavaScript’s JSON.parse.

If the pasted JSON is an Object (i.e. a document), the keys must be quoted in double quotes and are permitted to be escaped. The first character must be left curly brace { and the last must be right curly brace }:

{
  "email": "test@example.com",
  "phone": "555-555-1212"
}
但是不幸的是,这个过程真的很反直觉,因为如果你从上面的例子中复制JSON对象,你将无法将其粘贴到字段值中除非你首先输入一些内容,比如一个空格字符。

但是,如果你的对象不是一个有效的JSON,它将被粘贴(!)但不会被解析(?), 并且它将被保存为一个字符串。

无论如何,即使你设法存储你的对象,你也无法轻松地编辑它,你最终会复制和粘贴到外部文本编辑器中以实现你的目标。

编辑:

你可以尝试使用这个客户端Robo 3T,它让你更轻松地编辑文档结构。有趣的是,如果你用Robo 3T编辑文档并重新加载Compass中的文档,它将让你做你一直想做的事情......所以这一定是Compass UI问题/bug。


Robo 3T很棒!绝对比MongoDB Compass更具功能性;感谢你提醒我这个名字! - Janac Meena
Robot3T/Studio3T似乎无法与mongo Atlas配合使用... 我借此机会提一下当我们知道它是由mongoDB自己开发的时,Compass有多么可怕和不实用,真是太遗憾了。 - Felipe

1

您可以在编辑时从以下界面选择对象类型:

enter image description here

物件可以拥有多个不同类型的属性。当通过API查询时,数据如下所示:

enter image description here


1
你可以简单地将类型对象分配给子文档的字段/变量名称。

Adding array of sub-documents using MongoDB Compass


1
MongoDB Compass似乎最近添加了JSON视图功能:enter image description here。因此,从列表视图切换到该视图,然后在您想要更改的任何文档上点击“编辑文档”。现在,您正在直接编辑文档的JSON表示形式。完成更改后,请点击“更新”,假设更改后JSON仍然有效。如果需要向现有文档添加较大的数据块(对象数组等),则与一次添加一个属性并从微小的下拉菜单中选择类型相比,这将非常有帮助。

1
你可以实现自己的意图,只需将otherQuestions类型设置为Object

这将允许您嵌入另一个文档/对象,它是一个JSON

这是使用基于NoSQL的BSON数据库的方法,它不是关系型的,因此您不能将字段类型设置为另一个文档,只需使用Object并将树嵌入其中即可。

无论如何,我强烈建议阅读Mongo的文档


0
迟做总比不做好:我认为将复杂数据插入MongoDB集合的最快方法是先导出表格,然后截断表格(删除所有记录),在一个好的文本编辑器中修改您想要的任何内容(如notepad ++,sublime等),最后将数据重新导入表格。
完成! :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接