0

我通常使用以下方法选择一个集合......假设集合名称在名为“somedb”的数据库中是“fantastic”

$conn = new Mongo();
$fantastic_coll = $conn->somedb->fantastic;

这对我来说已经很长一段时间了。我使用的集合的数量已经增长了很多,我试图在集合名称中使用点来更有逻辑地组织它们。

例如。

  • store.items
  • store.categories
  • store.coupons
  • 事件
  • 事件.类别

这似乎在 mongodb shell 中可以正常工作,但在 php 中不行?

如果我尝试......

$conn = new Mongo();
$store_coupons_coll = $conn->somedb->store.coupons;

然后尝试将文档保存到它不喜欢我的集合中。

如果我改为使用...

$conn = new Mongo();
$store_coupons_coll = $conn->somedb->selectCollection('store.coupons');

一切都按预期工作。这是正确的方法吗?

  • 如果是这样,那么我希望这可以帮助任何遇到同样麻烦的人。
  • 如果没有,那么是否有一种简短的方法来编写集合名称?
  • 一开始就在集合名称中使用点作为组织错误吗?
4

1 回答 1

2

这样做的首选方法是:

$collection = $conn->somedb->selectCollection( 'store.coupons' );

或者,如果您愿意:

$collection = $conn->selectCollection( 'somedb', 'store.coupons' );
于 2013-08-13T07:28:22.740 回答