当前位置: 首页 > 知识库问答 >
问题:

如何在mongoose[duplicate]中更新数组

诸葛绍元
2023-03-14

我有一个highlight模式为:

var newshighlightSchema = new mongoose.Schema({
    volumeNo:String,
    week:String,
    status:String,
    adminApp : Boolean,
    reviewerApp:Boolean,
    ttheadApp:Boolean,
    comment:String,

    highlight:[{
            createdby:String,
            level : String,
            title : String,
            description: String        
            }]
});
{
        "_id" : ObjectId("580daa749c6e2e1830a54fe5"),
        "volumeNo" : "100",
        "week" : "W44Y2016",
        "status" : "false",
        "adminApp" : false,
        "reviewerApp" : false,
        "ttheadApp" : false,
        "comment" : "",
        "highlight" : [
                {
                        "createdby" : "58047db9f8995a147ce3fmeo",
                        "level" : "Accolades",
                        "title" : " the news title",
                        "description" : "Description of news title",
                        "_id" : ObjectId("580daa749c6e2e1830a54fe6")
                }
        ],
        "__v" : 0
}
newshighlightSchema.statics.updateLevel=function(savedata, callback){ 
        console.log("data is model updating ",savedata);

    this.update({'highlight._id':savedata._id},{'$set':{
        'highlight.title':savedata.title,
        'highlight.description':savedata.description
    }},function(err){
        callback(err,null);
        console.log("Err in updating",err);
    })
}
savedata = { createdby: '58047db9f8995a147ce3fmeo',
  timestamp: 'Monday, 24th October 2016',
  testlabel: 'qq',
  level: 'Accolades',
  title: 'Updated news title',
  description: 'updated Description',
  _id: '580daa749c6e2e1830a54fe6',
   }

共有1个答案

轩辕佑运
2023-03-14

使用$,

 this.update({'highlight._id':savedata._id},{'$set':{
       'highlight.$.title':savedata.title,
        'highlight.$.description':savedata.description
  }},function(err){

cf:更新嵌套mongo数组

 类似资料:
  • 问题内容: 我想更新一个数组值,但我不确定要执行的正确方法,因此我尝试了以下方法,但没有为我工作。 我的模型,我模型中的子域 我的查询 谁能给我帮助。谢谢。 问题答案: 你不能同时使用 ,并 在相同的更新表达式作为嵌套的运营商。 使用更新运算符的正确语法如下: 在那里可以来自任何指定的更新列表运营商的位置。 要将一个新元素添加到数组中,只需一个 运算符即可,例如,您可以使用 update方法将修改

  • 我有以下架构 我想为创建静态方法,以便根据给定的更新 我的情况与建议的复制相似,但不相同,因为那里的家伙知道所有的,而我不知道。

  • 这就是状态变量中的内容 我试图做的是调用一个函数来更新一个位置的期望值。例如,我使用的函数如下: 它不起作用。我知道我可以传递一个完全更新的数组,但我需要当前状态的其他值。

  • 问题内容: 也许是时候了,也许是我淹没在稀疏的文档中,无法将自己的头围在Mongoose中的更新概念上:) 这是交易: 我有一个联系模式和模型(缩短的属性): 我从客户端收到一个包含我需要的字段的请求,并因此使用我的模型: 现在我们解决了这个问题: 如果我打电话,如果使用相同电话号码的联系人已经存在(如预期-唯一),我将收到一条错误消息 我无法致电联系,因为该方法在文档中不存在 如果我对模型调用u

  • 我已经阅读了尽可能多的关于如何在MongoDB中正确更新数组中的元素的文章(比如这篇:Mongoose,更新对象数组中的值),并认为我已经遵循了所有的建议,但我仍然犯了错误,如果有人能发现我的错误,我将非常感激,因为我已经试着调试了几个小时! 我特别遇到的问题是findOneAndUpdate调用似乎只是更新“inventureItems”数组中的第一个元素,不管它是否匹配我对特定元素的查询。 我

  • 我有一个mongodb集合的mongoose模式,我将其定义如下: 在数据库集合中,我当前有一个文档,它包含除以外的所有属性的值,用于测试目的。我有一个服务器endpoint,当被调用时,它应该发出一个PUT请求来更新文档并向sketches数组中添加一个对象: 在这个web服务中,我基本上试图通过用户名选择用户文档,用户名作为参数传递给url字符串,如下所示: 由于某种原因,当我尝试使用具有以下