使用长度条件查询 MongoDB
我在 MongoDB 集合中有几个文档,其中有一个字段“名称”(它是一个字符串)。
如何执行类似 7 <= name.length <= 14
的查询
I have several documents in a MongoDB Collection, with a field 'name' (which is a String).
How can I perform queries like 7 <= name.length <= 14
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用 JavaScript 表达式< /a>.
You can use a JavaScript expression.
Mongo 提供了几种使用长度条件执行查询的方法 -
$where
或$regex
是两个不错的选择,但我建议使用$regex
由于更好的查询性能。$where
(较慢)接受查询中的 JavaScript 表达式或函数
示例:
注意:
$where
运算符不会利用您的数据库索引,从而导致一个慢得多的查询。 - 来源$regex
(更快)为查询中的模式匹配字符串提供正则表达式功能
示例:
注意:
$regex
运算符将利用您的数据库索引,从而实现更快的查询(如果您的收藏已正确索引)。 - 来源Mongo provides a few ways to perform a query with length criteria –
$where
or$regex
are two great options however I would recommend using$regex
due to better query performance.$where
(slower)Accepts either a JavaScript expression or function in queries
Example:
Note: The
$where
operator will not take advantage of your database indexes, resulting in a much slower query. - Source$regex
(faster)Provides regular expression capabilities for pattern matching strings in queries
Example:
Note: The
$regex
operator will take advantage of your database indexes, resulting in a much faster query (if your collection is indexed properly). - Source您可以使用 MongoDB 的 $where 查询参数将 javascript 提交到服务器。例如:
http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D
You can use MongoDB's $where query parameter to submit javascript to the server. E.g.,:
http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D
$where
查询效率不高。 MongoDB如果这样是一个经常执行的查询,您可能希望将长度存储在单独的字段中。 非规范化
$where
queries are not very efficient. MongoDBIf this is a frequently executed query, you might want to store the length in a separate field. Denormalization