我在我们的一个MongoDB数据库中找到了一个名为的集合my.collection.
有没有办法从MongoDB shell访问这个集合,尽管名称中有一个点?
> db.my.collection.findOne();
null
Run Code Online (Sandbox Code Playgroud)
我很确定这不正确.
小智 87
试试这个:
db["my.collection"].findOne();
Run Code Online (Sandbox Code Playgroud)
你遇到与连字符或[a-zA-Z _ $] [0-9a-zA-Z_ $]上不匹配的任何其他名称相同的问题
此限制来自javascript对象属性的有效命名.
小智 12
如果集合名称是"my.collection"
db.my.collection.findOne(); //确定
无效
如果集合名称是"my.1.collection"
db.my.1.collection.findOne(); // Not OK
SyntaxError:missing; 在声明之前
固定:
分贝[ "my.1.collection"] findOne(); //现在是OK
null
另一个万无一失的方法是:
db.getCollection("_SCHEMA").find()
Run Code Online (Sandbox Code Playgroud)
如果名称中有下划线,仍然会导致@Laura回答错误:
> db["_SCHEMA"].find()
2016-07-18T17:44:16.948+0200 E QUERY [thread1] TypeError: db._SCHEMA is undefined :
@(shell):1:1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13720 次 |
| 最近记录: |