如果不存在mongodb,则将其添加到数组中
我正在使用mongoDB
+ nodejs
运行一个简单的应用程序,我正在尝试实现以下目标:
unit属于company,classroom属于unit,而user属于classroom。
在某些时候,我想将用户添加到另一个单元或/和教室,那么他将属于两个或多个单元/教室。
我的表单每次只会发送一个单元/教室,在这种情况下,我想将其添加到用户模型unit:[string]
和classroom:[string]
中,前提是他以前不属于该模型。因此,我需要检查数组是否已经有发送的数据,如果没有,则添加到其中。
Mongo具有$addToSet
属性,并且具有$ne
属性,但我似乎无法使其正常工作。
这是我的代码:
User.findById(req.body._id)
.select("-__v")
.exec((err: Error, user: any) => {
if (err) {
// display error
}
if (!user) {
// display error
}
user.update({
unit: {
$ne: user.unit
},
classroom: {
$ne: user.classroom
}
}, {
$addToSet: {
unit: req.body.unit,
classroom: req.body.classroom
}
}).exec((err: Error) => {
if (err) {
// Display error
}
res.status(200).json({
status: "OK",
response: response,
})
return
})
它属于“ Academy One”和教室ID参考,我会将他添加到“ Academy 2”之类的另一个单元中,并添加另一个教室参考,但是如果我将他添加到“ Academy One”的另一个教室中,我不会不想在它的单位数组中有重复项。
当我通过postman
发布以下内容时,出现错误:
{
"_id":"5d8ba151248ecb4df8803657", // user id
"unit":"Test", // another unit
"classroom":"5d8a709f44f55e4a785e2c50" // another classroom
}
响应:
{“ status”:“ NOK”,“ response”:“在路径\” unit \“”}
中,对值\“ [{\” $ ne \“:[\” Academy One \“]}] \”的[string]转换失败
我想念什么?
回答如下:user.updateOne({
$addToSet: { unit: req.body.unit, classroom: req.body.classroom }
}).exec((err: Error) => {
谢谢!
如果不存在mongodb,则将其添加到数组中
我正在使用mongoDB
+ nodejs
运行一个简单的应用程序,我正在尝试实现以下目标:
unit属于company,classroom属于unit,而user属于classroom。
在某些时候,我想将用户添加到另一个单元或/和教室,那么他将属于两个或多个单元/教室。
我的表单每次只会发送一个单元/教室,在这种情况下,我想将其添加到用户模型unit:[string]
和classroom:[string]
中,前提是他以前不属于该模型。因此,我需要检查数组是否已经有发送的数据,如果没有,则添加到其中。
Mongo具有$addToSet
属性,并且具有$ne
属性,但我似乎无法使其正常工作。
这是我的代码:
User.findById(req.body._id)
.select("-__v")
.exec((err: Error, user: any) => {
if (err) {
// display error
}
if (!user) {
// display error
}
user.update({
unit: {
$ne: user.unit
},
classroom: {
$ne: user.classroom
}
}, {
$addToSet: {
unit: req.body.unit,
classroom: req.body.classroom
}
}).exec((err: Error) => {
if (err) {
// Display error
}
res.status(200).json({
status: "OK",
response: response,
})
return
})
它属于“ Academy One”和教室ID参考,我会将他添加到“ Academy 2”之类的另一个单元中,并添加另一个教室参考,但是如果我将他添加到“ Academy One”的另一个教室中,我不会不想在它的单位数组中有重复项。
当我通过postman
发布以下内容时,出现错误:
{
"_id":"5d8ba151248ecb4df8803657", // user id
"unit":"Test", // another unit
"classroom":"5d8a709f44f55e4a785e2c50" // another classroom
}
响应:
{“ status”:“ NOK”,“ response”:“在路径\” unit \“”}
中,对值\“ [{\” $ ne \“:[\” Academy One \“]}] \”的[string]转换失败
我想念什么?
回答如下:user.updateOne({
$addToSet: { unit: req.body.unit, classroom: req.body.classroom }
}).exec((err: Error) => {
谢谢!