【发布时间】:2021-02-17 14:49:00
【问题描述】:
我在 Client.users 中有一个 ObjectID 数组。我正在尝试删除与存储在 req.body 中的 ID 匹配的 ObjectId。存储的 ID 是“5fa0625514b0db02df53084b”字符串 - 不是 ObjectID 格式。
const { id } = req.body; // this is 5fa0625514b0db02df53084b (second in the array)
Client: {
users: [
ObjectId("5fa027c614b0db02df530848"),
ObjectId("5fa0625514b0db02df53084b")
]
}
我已经尝试使用 Mongoose 将 req.body 中的字符串转换为对象 ID,但它仍然不起作用。
let searchQuery = {"_id": jwt.id};
Client.findOneAndUpdate(searchQuery, {
$pull: {
"users": [mongoose.Types.ObjectId(id)]
}
})
如果我只将它作为一个字符串开头,是否可以从数组中删除一个 ObjectID?我知道一定有办法以某种方式对其进行转换,但文档告诉我使用上面的尝试,但它似乎不起作用(不会从数组中删除 ObjectID)。
如果有人能提供帮助,我将不胜感激。干杯
【问题讨论】:
-
首先要确定你的
findOneAndUpdate真的找到了一些东西。那么也许看看这里,似乎符合你的问题stackoverflow.com/questions/19786075/…
标签: javascript mongodb mongoose nosql