如何从Mongodb中删除数组元素

坦泽尔

我是MEAN Stack的新手。我想实现这个这个我正在使用$pull但是他们无法正常工作,也许是因为我在mongodb中的结构与他们的结构不同。因此,让我首先向您展示:

在此处输入图片说明

downvoters是一个字符串数组,其中包含对该特定文章不满意的用户ID。假设某人(downvoters[2]53et853rf后来的人)对本文进行了投票然后,应将其用户名从投票者列表中删除。这是我的代码:

api.js

router.put('/update-upvotes', (req, res) => {
  let articleData = req.body;
  ...
  Article.update(
    {articleid: '5p4aqbryi'},
    { $pull: { downvoters: '53et853rf' } }
  );
  Article.findOneAndUpdate(
    {articleid: '5p4aqbryi'},
    {upvotes: articleData.upvotes, upvoters: articleData.upvoters}, useFindAndModify=false,
    (error, user) => {
      if(error) {
        ...
      }
      else {
        ...
      }
    })
   })

但是该ID不会被删除。控制台上没有错误或警告。请纠正我。

这是架构

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const articleSchema = new Schema({
  articleid: String,
  title: String,
  content: String,
  date: String,
  contributor: String,
  upvotes: Number,
  upvoters: [],
  downvotes: Number,
  downvoters: []
})
module.exports = mongoose.model('article', articleSchema, 'articles');

PS:我们articleIddownvoter id现在进行硬编码。我将在以后使它们动态化。

米克尔

这两个upvotersdownvotersString数组所以你的猫鼬的模式应该如下:

const articleSchema = new Schema({
    articleid: String,
    title: String,
    content: String,
    date: String,
    contributor: String,
    upvotes: Number,
    upvoters: [String],
    downvotes: Number,
    downvoters: [String]
});

您还应该记住,这update()是一个异步操作,需要awaited作为Promise进行处理:

let opResult = await Article.update(
    {articleid: '5p4aqbryi'},
    { $pull: { downvoters: '53et853rf' } }
);

要么

Article.update(
        { articleid: '5p4aqbryi' },
        { $pull: { downvoters: '53et853rf' } }
    ).then(opResult => console.log(opResult));

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除数组元素中的空格?

来自分类Dev

从 MongoDb 中的文档中删除数组元素

来自分类Dev

MongoDb查询以匹配和删除数组中的元素?

来自分类Dev

MongoDb查询以匹配和删除数组中的元素?

来自分类Dev

删除数组中的元素

来自分类Dev

如何在mongoDB中删除数组中的数组?

来自分类Dev

如何使用$ pull在mongodb中删除数组中的文档

来自分类Dev

如何从特定值上删除数组中的元素?

来自分类Dev

如何在PHP中删除数组元素?

来自分类Dev

如何使用RethinkDB删除数组中的元素

来自分类Dev

如何删除数组中特定位置的任何元素?

来自分类Dev

如何在json-c中删除数组元素?

来自分类Dev

如何删除数组PHP中的空元素

来自分类Dev

如何在json-c中删除数组元素?

来自分类Dev

如何使用PHP删除数组中的元素

来自分类Dev

如何获取,返回和删除数组中的随机元素?

来自分类Dev

如何通过迭代删除数组中的所有元素

来自分类Dev

如何在条件之后删除数组中的每个元素?

来自分类Dev

如何从子子文档中删除数组元素

来自分类Dev

删除数组中的数组元素

来自分类Dev

如何在Mongodb / Golang中删除数组项?

来自分类Dev

如何删除数组中的[“”]?

来自分类Dev

如何删除数组的匹配元素

来自分类Dev

使用Lodash删除数组中的元素

来自分类Dev

迭代删除数组中的元素

来自分类Dev

删除数组中的特定元素

来自分类Dev

尝试删除数组中的元素:Ruby

来自分类Dev

删除数组中的Null元素

来自分类Dev

删除数组中的重复元素