最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如果不存在mongodb,则将其添加到数组中

IT培训 admin 9浏览 0评论

如果不存在mongodb,则将其添加到数组中

我正在使用mongoDB + nodejs运行一个简单的应用程序,我正在尝试实现以下目标:

unit属于companyclassroom属于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属于companyclassroom属于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) => {

谢谢!

发布评论

评论列表 (0)

  1. 暂无评论