gpt4 book ai didi

javascript - MONGODB 类操作符

转载 作者:数据小太阳 更新时间:2023-10-29 04:02:02 24 4
gpt4 key购买 nike

我正在使用 JavaScript 查询基于 Mongo 数据库的 API。

我需要根据 LIKE 运算符过滤结果,类似于

select * from playlist where title like '%a%'

此刻我调用这个URL

var assetUrl = 'https://example.com/playlist?oauth_token=' + accessToken + '&account=XXX'+ '&fields={"title":true,"splash":true,"description":true,"source":true}'+ '&criteria={"title":/.*a.*/}';

没有成功(返回 0 个对象)。

我想知道我是否应该改用正则表达式以及如何在这种情况下使用它们。谢谢

最佳答案

是的,MongoDB 支持正则表达式。您可以在 the documentation 中阅读相关信息.这是一个例子:

db.collection.find( { url: /.*a.*/ } );

这会找到集合中字段“url”与正则表达式匹配的所有文档。还有一种使用 $regex 运算符的替代语法:

db.collection.find( { url: { $regex: ".*a.*"} } );

请注意,正则表达式很慢,而且扩展性很差。搜索时间与集合中的记录数成线性关系,索引仅在您的正则表达式以字符串开头 anchor ^(谢谢,chx)开头时才有帮助。

该文档还有一章关于 Full Text Search in Mongo建议将每个字符串拆分为一个由单个单词组成的数组,以便您可以对其进行索引以加快查找速度。这当然不允许搜索单词片段,但可以大大加快搜索完整单词的速度。

更新: MongoDB 2.4 有 a new experimental text-index feature这允许使用索引加速文本搜索。

更新 2:从 2.6 版开始,文本搜索默认启用并准备好用于生产。

关于javascript - MONGODB 类操作符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com