猫鼬删除子文档$ push

时间:2020-06-30 15:09:02

标签: node.js mongodb mongoose

我在使用猫鼬删除子文档时遇到问题。

我有一个这样的架构设置:



rm(list=ls())

library(quanteda)
library(quanteda.corpora)
library(readtext)
library(LexisNexisTools)
library(tidyverse)
library(RColorBrewer)

LNToutput <-lnt_read("word_labour.docx")

corp <- lnt_convert(LNToutput, to = "quanteda")

#uses the package lexisnexistools to create the corpus from the format needed


dfm <- dfm(corp, dictionary = data_dictionary_LSD2015)
dfm

toks_dict <- tokens_lookup(tokens(corp), dictionary = data_dictionary_LSD2015, exclusive= FALSE )
toks_dict

dfm_dict <- dfm(toks_dict, dictionary = data_dictionary_LSD2015, exclusive = FALSE )
dfm_dict


Base.admins由具有管理员权限的一系列用户填充。我希望能够从该阵列中删除用户。 下面的代码从Mongo获取数据,但没有删除具有该ID的用户,它返回的数据与更新/拉取请求之前的数据相同。

let baseSchema = new mongoose.Schema({
    basename: String,   
    admins: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: "User"
    }]
})

我已经确保userId是使用的对象类型

await Base.findOneAndUpdate({ _id: baseId }, {$pull: {admins: { _id: userId }}}, { new: true });

有人对如何从管理阵列中删除用户然后将文档保存到数据库有任何建议吗?

1 个答案:

答案 0 :(得分:0)

不知道为什么,但是当我使用$ pullAll而不是$ pull时,它起作用了。即

await Base.findByIdAndUpdate(baseId, { $pullAll: { admins: [userId] } }, { new: true });