选择名称中带点的集合

时间:2013-08-13 03:33:46

标签: php mongodb

我通常使用以下方法选择一个集合...... 假设集合名称是"太棒了"在名为" somedb"

的数据库中
$conn = new Mongo();
$fantastic_coll = $conn->somedb->fantastic;

这对我来说很有名气。我正在使用的馆藏数量增长了很多,我试图在馆藏名称中使用点来更有逻辑地组织它们。

例如

  • store.items
  • store.categories
  • store.coupons
  • 事件
  • events.categories

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

如果我尝试......

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

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

如果我改为使用......

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

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

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

1 个答案:

答案 0 :(得分:2)

执行此操作的首选方法是:

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

或者如果你想:

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