将值推送到 Mongo 嵌套数组中

问题描述 投票:0回答:1

enter image description here

假设我们照片中有很多这样的文件

我有上面的架构。我想首先根据 _id 找到文档,然后将值数组推送到 providedServices ,它属于 barbers 数组中的 _id

一点帮助。好像找不到这个!

mongodb mongoose mongoose-schema
1个回答
1
投票

你需要先找到相关的数组。为此,您可以使用 $elemMatch 或将其写为 'barbers._id' : {$elemMatch: 参数}' .

在这里,我们尝试通过过滤其 idbarbers id 来查找文档。您可以根据需要更改过滤器。只能根据理发师 id 进行过滤。

$
位置运算符可用于更新值。
另请参阅 MongoDB 文档:更新文档中的数组

需要编写您的 DocumentName 和参数,而不是 idValue、barbersId 和 serviceModel。

const result = await DocumentName.findOneAndUpdate(
{
 $and: 
   [
       {_id: mongoose.Types.ObjectId(idValue)}, 
       {'barbers': {$elemMatch: {_id: mongoose.Types.ObjectId(barbersId)}}}
   ]
},  
{ $push: { 'barbers.$.providedServices': serviceModel } },
{ new: true })

首先,我们在所有文档中找到了相关的barbers数组。然后我们将providedServices数组内的模型推入barbers数组中。

© www.soinside.com 2019 - 2024. All rights reserved.