Как удалить коллекцию со справочными коллекциями в пн goose? - PullRequest
1 голос
/ 21 февраля 2020

У меня есть эта пользовательская модель, в которой модель блога используется в качестве ссылки, а блог содержит коллекции комментариев в качестве ссылки

const userSchema = new Schema(
  {
    email: {
      type: String,
      required: true,
      index: {
        unique: true
      }
    },
    password: {
      type: String,
      required: true
    },
    name: {
      type: String,
      required: true
    },
    website: {
      type: String
    },
    bio: {
      type: String
    }
  },
  {
    timestamps: {
      createdAt: "created_at",
      updatedAt: "updated_at"
    }
  }
);

userSchema.virtual("blogs", {
  ref: "blogs",
  localField: "_id",
  foreignField: "author"
});

Я хочу также удалить данные блога и любую вложенную коллекцию в коллекции блога. Как я могу удалить это?

1 Ответ

0 голосов
/ 21 февраля 2020

если я вас правильно понял, это поможет.

function deleteUserById(id){
    UserModel.findById(id, async (err, user) => {
        try{
            await deleteBlodById(user.blog._id);
            UserModel.findByIdAndRemove(id)
        }catch(e){
            throw e;
        }
    })
}
function deleteBlogById(id){
    BlogModel.findById(id, async (err, blog) => {
        // ... The pretty same thing like before, just delete 
    })
}

Надеюсь, это поможет. Если бы ваш вопрос был похож на Is there any function that automatically remove document and all its referenced documents, я не могу найти ничего подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...