花了整整一天的时间后...我需要帮助。
节点v12.14.1 猫鼬v5.8.9 mongoDB v4.2.1
所以一切都是最新的。
我尝试了很多方法,但这就是它的工作方式:
model.updateOne({_id:model_id},{$pull: {videos: {_id:video_id},{multi:true})
但是我得到了
{ n: 1, nModified: 0, ok: 1 }
因此,它被发现了,没有错误,但是它确实删除/修改了对象。
不能弄清楚应该怎么做。
答案 0 :(得分:0)
因此,根据您的查询,我假设这是您的文档的样子:
{
_id: "<some uuid>",
videos: [
{
_id: "<some uuid>"
},
{... n}
]
}
在这种情况下,您的更新查询看起来不错,也许您需要考虑video_id输入。 您可以尝试进行等效查找吗?:
model.find({_id:model_id, 'team._id': video_id})
答案 1 :(得分:0)
有时... 有时候,错误是在到达这一行代码之前发生的。。。
很难在终端输出中找到原因,而且在指南针中,一切看起来都很好。
但是,在那一刻,我保存了视频并更新用户以使其在用户集合中也只有视频ID,标题和子弹,我做到了:
$push: {
videos: [{
_id: data._id,
title: data.title,
slug: data.slug
}]
}
是的,我将包含对象的空数组推入数组。但是就像我说的那样,输出以及.find()都一样。
在我删除[]括号并测试了新的数据集之后,$ pull可以正常工作。
猜猜这是我最难的错误了……到目前为止最难的错误了!
感谢您的帮助!