如果在单个查询中$ pull之后数组计数为零,则mongodb删除文档

M14*_*M14 5 mongodb node.js mongodb-query

我有一个要求,我的comments架构如下所示

{
  "_id": 1,
  "comments": [
    { "userId": "123", "comment": "nice" },
    { "userId": "124", "comment": "super"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想根据实际情况选择要素userId。我正在执行以下查询

comments.update({},{$pull:{comments:{userId:"123"}}})
Run Code Online (Sandbox Code Playgroud)

我的要求是,如果在pull操作符之后数组长度变为零,则由于某种原因我需要删除整个文档。是否可以在单个查询中完成此操作?

PS:我使用的是mongodb驱动程序,不是猫鼬

anm*_*esh 1

您可以为此使用中间件。

http://mongoosejs.com/docs/middleware.html

在 mongodb 中编写一个更新前/更新后的方法来检查您的情况。