无法从MongoDB中删除集合

22

无法通过命令行删除集合,

集合是可用的,我的 PHP 脚本正在访问它(进行选择|更新)。

但是当我使用以下命令时:

db._registration.drop()

它给我一个错误:

Date, JS Error: TypeErrorL db._registration has no properties (shell): 1

3
db.getCollection("_registration")是什么意思?我认为这可能是JS类中的__call存在bug的原因。 - Sammaye
3个回答

53

问题不在于删除集合,而在于访问集合。因此,您将无法从shell中更新、查找或执行任何操作。正如在mongodb JIRA中指出的那样,当集合具有像_-这样的字符时,这是一个错误。

尽管这种类型的集合名称是可以接受的,但它会在shell中引起问题。

您可以使用以下命令在shell中删除它:

db.getCollection("_registration").drop()

或者这个

db['my-collection'].drop()

但我更愿意重新命名它(当然如果可能的话,而且不会导致很多修改)。


原来这也适用于任何以“-test”结尾命名的集合!(例如:db.mycollection-test.drop() - Shaun Scovil
2
在JS中你不能写成 db.mycollection-test , 因为它会被识别为将db.mycollection减去test - MatiK

0

你也可以使用:

db["_registration"].drop()

在 JavaScript 中也适用的语法。


-1

由于某些原因,双引号“_registration”对我无效..但单引号'_registration'有效


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接