mongodb使用findAndModify删除多个项目

时间:2017-09-22 16:44:56

标签: node.js mongodb mongoose

你好,我还是mongodb和Nodejs的新手 我希望能够删除项目并获取存储在数组中的id值,并删除它们

这里的解释是我的董事会架构

{
  name: {
    type: String,
    required: 'Please check your name',
    trim: true,
  },
  userId: {
    type: Number,
  },
  private: {
    type: Boolean,
    default: true,
  },
  cards: [{ type: Schema.Types.ObjectId, ref: 'Card' }],
};

电路板架构有卡阵列,我希望能够在删除电路板时,删除存储在其上的卡片卡阵列,我使用mongoose,我试图使用findAndModify并返回错误

我也尝试过这个

  const id = req.params.id;
  const boardCards = Board.findById(id).cards;
  try {
    Board.deleteMany(
        { _id: id },
        (err, board) => {
          Card.deleteMany(
            { _id: { $in: boardCards } },
            (err2, card) => { res.json(card); },
          );
        },
      );
  } catch (e) {
    res.status(400).send({ error: 400, message: e });
  }

但它不起作用

1 个答案:

答案 0 :(得分:0)

我不使用mongoose但在原生驱动程序中你需要为查询扭曲你的id

尝试做



  const id = mongoose.Types.ObjectId(req.params.id); //this has changed
  const boardCards = Board.findById(id).cards;
  try {
    Board.deleteMany(
        { _id: id },
        (err, board) => {
          Card.deleteMany(
            { _id: { $in: boardCards } },
            (err2, card) => { res.json(card); },
          );
        },
      );
  } catch (e) {
    res.status(400).send({ error: 400, message: e });
  }