doupi7619 2018-12-10 22:53
浏览 201

MongoDB批量写入更新:首先匹配部分字符串然后更新

I need to use executeBulkWrite to do the update in PHP. Before encoding in PHP, I would like to try the update in MongoDB console (V3.2).

In MongoDB console, my codes are (I would like to match the partial string then to update into the database):

    db.collection.bulkWrite([{ updateOne:{"filter" : { "file.path" : { $regex: "/12345678abcde.jpg/"}},
        "update" : { $set : {"group8.label" : "junior level" } }}}],{ writeConcern : { w : "majority", wtimeout : 100 } },{ ordered : false })

However, there is no match:"matchedCount" : 0.

In PHP, I want to code like this,

foreach($infoImage as $partialPath){print("Partial path is " . $partialPath);$bulk->update(['file.path' => preg_match("/$partialPath/")],['$set' => ['group8.label.' => $label]], ['multi' => false, 'upsert' => false]);$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);printf("Matched  %d document(s)
", $result->getMatchedCount());printf("Updated  %d document(s)
", $result->getModifiedCount());}

The $manager is MongoDB\Driver\Manager.

How to solve the issue? Is it correct to use $regex to match the partial string inside the update structure in bulkWrite?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图