使用 Mongo 集合中的特殊字符

Posted

技术标签:

【中文标题】使用 Mongo 集合中的特殊字符【英文标题】:Working with special characters in a Mongo collection 【发布时间】:2012-03-05 16:11:52 【问题描述】:

我有一个无法删除的集合,我假设其名称中的“-”是一个特殊字符。在 MongoDB 中,转义特殊字符的最佳方法是什么?

> db.tweets.drop();
true

但是

> db.tweets-old.drop();
ReferenceError: old is not defined (shell):1

我尝试用引号(单引号和双引号)和斜杠转义,但没有任何效果。

【问题讨论】:

【参考方案1】:

以下作品:

db["tweets-old"].drop();

它被称为square bracket notation,它允许您在属性名称中使用特殊字符。

【讨论】:

:).. 我已经放弃并更改了集合的名称,但是是的,这行得通! 注意,根据我使用 Mongo 4.4 的经验,如果集合尚不存在,则不能使用此表示法。如果没有或者您不确定,请按照下面@BlakesSeven 的回答 - 即 db.getCollection("tweets-old")【参考方案2】:

也是这样:

db.getCollection("tweets-old").drop()

这已经有一段时间了。

此外,方法调用还模仿了所有官方支持的 MongoDB 驱动程序中的通用“获取集合”访问器方法。所以这里的建议是你习惯这种方式使用它,因为“命名集合”访问器通常是这样完成的。

【讨论】:

这非常有用,因为尽管引擎确实支持括号符号,但括号符号对我来说还是会引发语法错误。谢谢!

以上是关于使用 Mongo 集合中的特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

请教下mongo的模糊搜索中字段有特殊符号怎么办

正则表达式特殊符号及用法

集合及特殊字符

URL中的特殊字符

URL中的特殊字符

C#两个特殊的集合类StringCollection与StringDictionary