1

假设 $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”创建其他集合?

4

1 回答 1

0

我不确定我是否理解正确,但我认为您要问的是,“为什么没有名为的集合board_name.name”?那是因为你还没有创建一个。

MongoDB 中的每个集合都只有一个名称。人类(和驱动程序)使用.s 将名称分隔为逻辑命名空间这一事实是为了使其更易于使用,并让您对相关集合进行逻辑分组,但从 MongoDB 的角度来看,名称只是一个字符串。

创建board_name.name.article后,如果您向另一个集合发出后续插入或保存操作,例如board_name.rank,那么届时将为您创建该集合。不会有冲突,您的插入、更新或保存操作将识别已存在的集合并对其进行操作,或者创建一个新集合并对其进行操作。

有关集合如何工作的更多信息,请参阅 MongoDB 文档

于 2011-08-18T12:43:10.807 回答