1

$db が php で作成された mongoDB 接続であるとします。

コレクションはまだありません。

1つのデータを挿入しました

$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" <--- これら 3 つを文字列として挿入するだけです。

今のところ、結合された文字列のように示されているだけですか

「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 に答える