假设$ db是与php建立的mongoDB连接。
目前还没有收藏。
我插入了一个数据
$db->board_name->board->article->insert(array("title"=>"example"));
这相当于
db.board_name.board.article.insert({"title":"example"})
问题是它不插入
db.board_name.board
结构但是
只需将“db.board_name.board.article”< ---这三个作为字符串插入即可。
它现在只是表现为组合字符串
因为“board_name”之后没有其他元素?
如果我在“board_name”之后添加更多内容,如
,该怎么办?db.board_name.rank.insert({"something":"thing"});
在这种情况下,mongoDB是否巧妙地将“rank”集合识别为“board_name”的一部分?
或者只是使用“db.board_name.rank”创建其他集合?
答案 0 :(得分:0)
我不确定我是否理解正确,但我认为你问的是,“为什么没有名为board_name.name
的集合”?那是因为你还没有创建一个。
MongoDB中的每个集合都只有一个名称。人类(和驱动程序)使用.
将名称分隔为逻辑命名空间这一事实使其更易于使用,并允许您对相关集合进行逻辑分组,但从MongoDB的角度来看,名称是只是一个字符串。
创建board_name.name.article
后,如果您对其他集合(例如board_name.rank
)发出后续插入或保存操作,那么此时将为您创建该集合。不存在冲突,您的插入,更新或保存操作将识别已存在的集合,并对其进行操作,或创建新集合并对其进行操作。
有关馆藏如何运作的更多信息,请see the MongoDB docs。