$ addToSet是否不更新数组中的对象?

时间:2018-12-25 16:56:04

标签: mongodb mongoose

我是mongodb的初学者,我想在 Array标签中添加一个对象。 即:对象数组。。我正在使用 $ addToSet运算符,但是它不起作用。 我有一个这样的收藏:

{
    "_id" : ObjectId("5c231693d1b726c55ec914a3"),
    "name" : "Christine Franklin",
    "degrees" : [ 
        {
            "level" : "Master",
            "major" : "Cs",
            "completion_year" : "2018",
            "faculty" : "AKz"
        }, 
        {
            "level" : "Bachelor",
            "major" : "Biology",
            "completion_year" : 2008,
            "faculty" : "Science"
        }
    ],
    "school_email" : "cfranklin@example.edu",
    "email" : "christine@example.com"
}
这是我的架构:

const schema=new mongoose.Schema({
    name:String,
    degrees:[String],
    school_email:String,
    email:String
});

const GradeDetails=mongoose.model('graduate',schema);

这是我的代码:

 const result=await GradeDetails.update({"name" : "Christine Franklin"},{
        $addToSet:{
            "degrees":{
        "level" : "PG",
        "major" : "M.Tech",
        "completion_year" : "2018",
        "faculty" : "KG"
    }}
    });

    console.log(result);

预先感谢...任何人都可以解决此问题?

1 个答案:

答案 0 :(得分:0)

除了类型严重不匹配的问题之外,您是否检查过对象是否已在数据库中更新并且只是无法正确显示?如果是这样,请将标志{ new : true }添加到您的更新查询选项中。否则,将返回旧对象。