2011-08-18 78 views
1

假設$ db是一個與php建立的mongoDB連接。在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中巧妙地認識到「等級」集合作爲在這種情況下,「board_name」的一部分?

或簡單地使用「db.board_name.rank」創建其他集合?

回答

0

我不確定我是否理解正確,但我認爲你問的是「爲什麼沒有收集名爲board_name.name」?那是因爲你還沒有創建一個。

MongoDB中的每個集合都只有一個名稱。人類(和驅動程序)使用. s將名稱分隔爲邏輯名稱空間這一事實很便於使用,並允許您在邏輯上對相關集合進行分組,但從MongoDB的角度來看,名稱只是一個字符串。

創建board_name.name.article後,如果您向其他集合(如board_name.rank)發出後續插入或保存操作,那麼該集合將在此時爲您創建。不會有任何衝突,插入,更新或保存操作將識別已存在的集合,並對其進行操作,或創建新的集合並對其進行操作。

欲瞭解更多有關如何收藏的工作,see the MongoDB docs

相關問題