猫鼬从数组中删除

Stas Ryabtsev

我需要从集合中的所有对象中删除用户ID,但传递的对象除外,在我的示例中,它的值是'Тата',请告诉我如何发出这样的请求?

在此处输入图片说明

console.log(结果)

[
 {
    _id: 5fa702b2f18e5723b4c00d9f,
    value: 'Тата',
    vote: { '36e7da32-f818-4771-bb5e-1807b2954b5f': [Array] },
    date: 2020-11-07T20:25:22.611Z,
    __v: 0
  }
]

console.log(要求正文)

{ value: 'Тата', habalkaId: '36e7da32-f818-4771-bb5e-1807b2954b5f' }

console.log(req.user._id)

5f63a251f17f1f38bc92bdab

我能做的就是找到

router.post('/', passport.authenticate('jwt', {session: false}), (req, res) => {
   FirstName.find({value: req.body.value})
    .then(result => {
      if (result.length) {
        console.log(result)
        console.log(req.body)
        console.log(req.user._id)
        FirstName.find({value: {$ne: 'Слоник'}}, function (err, arr) {
            arr.map(e => {
              if (e.vote[req.body.habalkaId].length) {
                if(e.vote[req.body.habalkaId].includes(String(req.user._id))){
                  console.log(e.vote[req.body.habalkaId])
                }
              }
            })

        })

      } else {
        new FirstName({
          value: req.body.value,
          vote: {[req.body.habalkaId]: [String(req.user._id)]}
        }).save();
      }
    })

  // res.json({res: req.body})
})

FirstName.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

// Create Schema
const FirstNameSchema = new Schema({
  value: {
    type: String
  },
  vote: {
    type: Object
  },
  date: {
    type: Date,
    default: Date.now
  }
});

module.exports = FirstName = mongoose.model('firstname', FirstNameSchema);
JF

如果我了解得很好,则您需要以下内容:

db.collection.update({
  "value": {
    "$ne": "tata"
  }
},
{
  "$pull": {
    "vote.array_name": "id_value"
  }
},
{
  multi: true
})

首先,找到value与给定文档不匹配的所有文档然后,对于找到的每个文档,使用给定的匹配$pull位置从数组中删除对象id

这里的例子

请检查付款地点,并检查我是否使用了正确的架构,并且该架构显示了预期的输出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章