在 Mongodb 中搜索和替换?

2024-02-12

给定一组 100 个帖子,每个帖子都有一个包含帖子内容的 body 属性,并且该内容内有图像 url,例如“http://example.com/wp-content/uploads/5.jpg http://example.com/wp-content/uploads/5.jpg"

有没有办法浏览每个帖子的正文内容,然后查找与“”匹配的任何内容http://example.com/wp-content/uploads/5.jpg http://example.com/wp-content/uploads/5.jpg“并将其替换为类似”http://amazon-bucket.aws.com/wp-content/uploads/5.jpg http://amazon-bucket.aws.com/wp-content/uploads/5.jpg"

Thanks!


不完全是,我的意思是如果您不是在寻找“精确的字符串”并且希望始终用“相同”的不同字符串替换。

本质上,您似乎正在寻找可以通过以下方式执行的文档的“正则表达式替换”.update()。虽然有可能$regex http://docs.mongodb.org/manual/reference/operator/query/regex/搜索时,没有“捕获”或选项将捕获的部分提供给语句的“更新”部分,例如$set http://docs.mongodb.org/manual/reference/operator/update/set/.

因此,为了进行此类更新,您需要循环文档并在代码中进行修改。但是批量操作API http://docs.mongodb.org/manual/reference/method/Bulk/可以在这里提供一些帮助:

var bulk = db.collection.initializeOrderedBulkOp();
var counter = 0;

var query = { "url": { "$regex": "^http://example\.com" }};
db.collection.find(query).forEach(function(doc) {

    // Inspect and replace the part of the string
    bulk.find({ "_id": doc._id }).updateOne(
        { "$set": { "url": doc.url.replace("example.com","bucket.aws.com") } }
    );
    counter++;

    // Update once every 1000 documents
    if ( counter % 1000 == 0 ) {
        bulk.execute();
        bulk = db.collection.initializeOrderedBulkOp();
    }

})

// Process any remaining
if ( counter % 1000 != 0 )
    bulk.execute();

因此,这仍然需要循环,但至少每处理 1000 个文档才会将更新发送到服务器一次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mongodb 中搜索和替换? 的相关文章

  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • 用隐藏单元格补充 colspanned 表格有什么不好吗?

    我一直在表格上开发一些排序和选择功能 我发现在具有跨单元格的表格中定位非常困难 我只是添加了跨区单元格并将其隐藏 它看起来不错 它与我的 js 一起工作 非常适合索引 但我想知道这是否是合法的方法 stuffing display none
  • 消息“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调”

    我正在使用 Puppeteer 和 Jest 来运行一些前端测试 我的测试如下 describe Profile Tab Exists and Clickable settings user gt test Assert that you
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • Mongoose 和 Promise:如何获取查询结果数组?

    使用猫鼬从数据库和 Q 中查询结果以获取承诺 但发现很难只获取可用用户列表 目前我有一些这样的东西 var checkForPerson function person people mongoose model Person Person
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • 当用户单击链接时,如何记录 MixPanel 事件?

    当用户单击某种类型的链接时 我试图在 MixPanel 中记录一个事件 我正在使用 JQuery 不引人注意地完成此操作 据我所知 我需要添加一个回调函数 以便在记录事件后将用户带到 URL 这是我正在使用的代码 不幸的是
  • 如何在jquery中获取保存时间和当前时间的差异?

    我想在 javascript 或 jquery 中获取保存时间和当前时间之间的时差 我节省的时间看起来像Sun Oct 24 15 55 56 GMT 05 30 2010 java中的日期格式代码如下 String newDate 201
  • Select2 下拉列表动态添加、删除和刷新项目

    这让我发疯 为什么 Select2 不能在其页面上实现清晰的方法或示例如何在 Select2 上进行简单的 CRUD 操作 我有一个 select2 从 ajax 调用获取数据
  • 无法在前端使用 JavaScript Fetch API 将文件上传到 FastAPI 后端

    我正在尝试弄清楚如何将图像发送到我的 API 并验证生成的token那是在header的请求 到目前为止 这就是我所处的位置 app post endreProfilbilde async def endreProfilbilde requ
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • mongodb 获取最后插入的文档

    此 Meteor 代码尝试查找集合中的最后一个文档 find userId this userId sort createdAt 1 limit 1 但由于所有文档都是按时间顺序排列的 我想删除createdAt字段 所以一旦被 删除 是否
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • 如何在打字稿文件中导入没有定义文件的js库

    随着我们的项目变得越来越大 我想从 JavaScript 切换到 TypeScript 以帮助进行代码管理 然而 我们使用许多库作为 amd 模块 我们不想将其转换为 TypeScript 我们仍然想将它们导入 TypeScript 文件

随机推荐

  • PHP 中的自动加载器 - 一次运行两个

    我了解如何注册自动加载器 甚至如何创建自动加载器 这根本不是问题 主要问题是 如何让两个自动装载机并排运行以执行以下操作 class project one folder class extends project two folder c
  • 如何在 Java 中播放声音?

    我希望能够在我的程序中播放声音文件 我应该去哪里看 我编写了以下代码 效果很好 但我认为它只适用于 wav format public static synchronized void playSound final String url
  • OpenSSL 中 PEM 格式的默认密码是什么?

    我使用 openssl 生成密钥 证书 openssl exe req x509 days 1000 newkey rsa 1024 keyout key pem out cert pem 它提示输入密码 我猜测密码是用于密钥加密的 但是我
  • ALV网格只加载前64行,如何更改默认加载

    情况 我已经为 SAP GUI 脚本创建了一个查找功能 如果网格行在特定列中具有特定值 则双击它 这会触发加载特定的相关数据 我的网格少于 300 行 因此加载如此多的数据不会对现代计算机造成压力 Issue 我遇到的问题是 从 SAPGr
  • 从模板中的 django 表单中仅获取一个字段

    我有一种形式 class FormLogin forms Form email forms EmailField max length 150 name forms CharField max length 20 如何在模板中仅添加电子邮件
  • 注册的elephantbird仍然显示错误2998

    grunt gt register home piyush Desktop pro json simple 1 1 1 jar grunt gt register home piyush Desktop pro elephant bird
  • Netlogo中有NOOP吗?

    我正在寻找一种在 netlogo 中什么也不做的方法 在其他编程语言中 这称为无操作方法 有没有办法可以在 netlogo 中做到这一点 您可以非常轻松地编写自己的无操作过程 to no op end usage to go no op e
  • 将画布原点设置为左下角

    有没有办法将原点设置为画布的左下角 我尝试按 1 缩放 但之后一切都颠倒了 我需要制作类似坐标系的东西 但只有正部分 第一象限 所以我需要它从左下角的 0 0 开始 ctx translate 0 canvas height ctx sca
  • 任何仅忽略“连接由对等方重置”IOExceptions 的方法

    由于网络问题 我对来自套接字读取调用的大量 IOException 感到非常恼火 通常 这仅意味着有人杀死了子进程或网络严重故障 VPN 连接断开等 我的服务器无法执行任何操作 但我真的不想在日志文件中看到所有这些错误 java中有没有办法
  • 为什么张量流分类器在移动设备上的准确度低于笔记本电脑

    我使用 2 个 googleCodelabs 重新训练了自定义张量流模型 其链接如下 诗人 1 的 Tensorflow https codelabs developers google com codelabs tensorflow fo
  • 使用 WordPress $wpdb 将数据插入 WordPress 数据库中的表中

    我正在开始插件开发 并已按照 WordPress Codex 网站上的教程进行操作 我现在陷入困境 我有一个名为 wp imlisteningto 的数据库 其中wp 插入使用 table name wpdb gt prefix imlis
  • “功能”和“功能”有什么区别!在 VIM 中?

    我看到很多 函数 的用法 在其他 vimrc 文件中 但没有易于找到的 function 文档 功能 和 功能 有什么区别 help user functions 当具有此名称的函数已存在且 为未使用时会给出错误消息 当使用 时 现有功能会
  • 向 TinyMCE 文本区域添加边框半径

    是否可以为 TinyMCE 的文本区域添加边框半径 我的输入字段等上有圆角 但我无法让它在我的文本区域上工作 这有点杀了我 可能是因为 TinyMCE 将它变成了 IFRAME 有没有办法解决 多谢 一种解决方案是使用editor css设
  • Tomcat JDBC 连接池:testOnBorrow 与 testWhileIdle

    由于各种原因 池中的连接可能会变得无效 服务器连接超时 网络问题 我的理解是 Tomcat JDBC 连接池不对其向应用程序提供的连接的有效性提供任何保证 为了防止 实际上只是降低风险 从池中获取无效连接 解决方案似乎是配置连接验证 验证连
  • 编写对空格敏感的解析器规则,同时从词法分析器中跳过 WS

    我在处理空白时遇到一些麻烦 在以下语法摘录中 我设置了词法分析器 以便解析器跳过空格 ENTITY VAR user resource INT DIGIT DIGIT ID LETTER LETTER DIGIT SPECIAL ENTIT
  • 引用的定义相互矛盾

    我正在学习 C 中的引用 特别是 我了解到引用不是实际对象 相反 它们引用了其他一些对象 也就是说 引用只是其他对象的别名 然后我遇到了this https isocpp org wiki faq references overview r
  • 如何让iOS UIWebView正确显示手机网站?

    我是 iOS 应用程序开发新手 我刚刚尝试使用UIWeb视图在我的应用程序中显示移动网站 但不太成功 我所做的只是我在一些谷歌搜索过程中发现的一些最小的 Xcode 项目配置和编码 使用以下命令在 Xcode 中创建一个新的 iOS 应用程
  • Chrome 扩展程序登录最佳实践

    我正在创建一个 Chrome 扩展程序弹出窗口并需要登录 现在 我将使用用户名和密码进行自己的身份验证 但扩展中的最佳实践是什么 这是我的想法 我将使用帖子登录远程服务器 取回一个令牌 我会将其保留在本地存储中一段时间 弹出窗口中还应该有一
  • 如何将 MVC3 Hello World 应用程序部署到本地主机并配置 IIS

    我在将 MVC3 应用程序部署到本地主机时遇到一些问题 我正在寻找构建 ASP MVC 3 应用程序并将其部署到本地系统的详细信息 我尝试过部署这个 但遇到了一个又一个问题 我不想单独跟踪每个问题 无论如何我可能都必须这样做 我想为自己和看
  • 在 Mongodb 中搜索和替换?

    给定一组 100 个帖子 每个帖子都有一个包含帖子内容的 body 属性 并且该内容内有图像 url 例如 http example com wp content uploads 5 jpg http example com wp cont