javascript - 从 MongoDB 中删除匹配 "this text"的条目

标签 javascript regex node.js mongodb mongoose

好吧,我搜索了又搜索,但我没能找到一种方法来完成这项工作。这是我拥有的:

我正在使用 node/express/socketio 等开发聊天应用程序。我正在尝试创建一个“清除”功能,以根据指定的输入从 MongoDB 中删除特定的聊天消息。例如:

/clear badword
/clear heck
/clear Barbara Streisand

我正在努力创建一个正确的 RegEx,它实际上会找到包含指定文本的条目。

这是我目前使用的:

Chat.remove({"msg":{$regex: new RegExp('.*' + myInput, 'i')}});

它似乎什么也没找到。注意:指定的文本可以在聊天消息的任何位置,所以我需要能够说:

如果<this text>存在于 msg 键中的任何位置,将其删除。

我已经查看了几个小时的 RegEx 文档,但我无法使其中的任何内容正常工作。谁能指出我正确的方向?

最佳答案

您需要为您的 remove 调用提供回调,或者在它返回的查询对象上调用 exec 以实际执行删除操作。

所以要么:

Chat.remove({"msg":{$regex: new RegExp('.*' + myInput, 'i')}}, (err) => {...});

或者

Chat.remove({"msg":{$regex: new RegExp('.*' + myInput, 'i')}}).exec();

关于正则表达式的一个注意事项:您不需要添加 '.*' 前缀。

关于javascript - 从 MongoDB 中删除匹配 "this text"的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34845962/

相关文章:

Java 脚本 (jsr223) : is it possible to (re)add the rhino compile feature

javascript - iOS Safari 上的 Dexie.js 数据库实例

JavaScript drawImage 在某些计算机上错误地裁剪了源 Canvas 图像

ruby - 使用正则表达式返回字符串的前缀,其中剥离的字符串有时包含 '/'

php - URL 路由正则表达式 PHP

python - 安装 Node.js 和更新 Python

python - 从nodejs到django的http请求

javascript - obj == JSON.parse(JSON.stringify(obj))为假

用于符号而非空格的 Javascript 正则表达式

javascript - node-postgres,连接意外终止