假设我们照片中有很多这样的文件
我有上面的架构。我想首先根据 _id 找到文档,然后将值数组推送到 providedServices ,它属于 barbers 数组中的 _id
一点帮助。好像找不到这个!
你需要先找到相关的数组。为此,您可以使用 $elemMatch 或将其写为 'barbers._id' : {$elemMatch: 参数}' .
在这里,我们尝试通过过滤其 id 和 barbers id 来查找文档。您可以根据需要更改过滤器。只能根据理发师 id 进行过滤。
$
位置运算符可用于更新值。 需要编写您的 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数组中。