【发布时间】:2019-01-02 02:20:56
【问题描述】:
我的 api 中有一个端点,它会删除一个特定的文档:
exports.removeProduct = (req, res) => {
const productId = req.params.productId
Product.deleteOne({ _id: productId }, (err) => {
// handle response
})
}
由于已删除的文档已不在数据库中,因此此时应该已将其删除。 尽管如此,我在调用它时检索了已删除的文档:
exports.getUnpublished = (req, res) => {
var unpublishedProducts = []
const userId = req.params.userId
Product.find({ userId: userId, published: false }, (err, products) => {
products.forEach((product) => {
if (Number(product.createdAt) === Number(product.updatedAt)) {
Product.remove({ _id: product._id }).exec();
} else {
unpublishedProducts.push(product)
}
})
// handle response
})
}
解释:首先,我找到所有具有特定userId 并且还没有published 的文档。之后,我遍历所有找到的文档并删除所有从未更新过的文档。所有其他文档都被推入unpublishedProducts 数组。
奇怪的是,unpublishedProducts 数组包含已被删除的文档。
P.S.:我注意到,重启服务器后,删除的文档不在unpublishedProducts数组中了。
【问题讨论】:
标签: node.js database mongodb express mongoose