好吧,我搜索了又搜索,但我没能找到一种方法来完成这项工作。这是我拥有的:
我正在使用 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/