我想要将我现有MongoDB数据库中的位置字段从:C01-S14-D05-->集装箱01-货架14我需要对数千个文档执行此操作,因此我需要一种快速的方法来完成此操作。我需要将编号容器和货架编号存储在变量中,然后需要将该字段更新为新格式。(请注意,我将完全摆脱D05(抽屉5))
6kkfgxo01#
您在问题中提供的信息越多,我们将能够更好地提供帮助。此答案假定您的文档具有类似于以下内容的现有结构:
{ _id: 1, location: "C01-S14-D05" }
这个答案还假设每个标识符都有一个字母,然后是两个数字。如果是这样,那么类似于以下内容的解决方案应该是可行的,或者至少可以作为一个良好的起点:
db.collection.update({}, [ { $addFields: { location: { $let: { vars: { vals: { $split: [ "$location", "-" ] } }, in: { "$concat": [ "Container", { "$substr": [ { "$arrayElemAt": [ "$$vals", 0 ] }, 1, 2 ] }, "-Shelf", { "$substr": [ { "$arrayElemAt": [ "$$vals", 1 ] }, 1, 2 ] } ] } } } } } ])
Playground demonstration here
1条答案
按热度按时间6kkfgxo01#
您在问题中提供的信息越多,我们将能够更好地提供帮助。此答案假定您的文档具有类似于以下内容的现有结构:
这个答案还假设每个标识符都有一个字母,然后是两个数字。如果是这样,那么类似于以下内容的解决方案应该是可行的,或者至少可以作为一个良好的起点:
Playground demonstration here