在环回中将数据保存到现有模型实例中

Save data into existing model instance in loopback

我有一个名为 ModelA 的模型,它使用基础 class 模型,而不是 PersistedModel。 ModelA 包含一个现有的模型实例,其中包含以下文档。

{
    "_id" : ObjectId("5cf34da5265db517d8e366d3"),
    "userId" : ObjectId("5cf34da5265db517d8e366d0"),
    "providers" : [ 
        "123456789", 
        "1598763690", 
        "1407850217", 
        "1720082597"
    ],
    "countByType" : {
        "doctors" : 3,
        "laboratories" : 0,
        "hospitals" : 0,
        "imagingCenters" : 0,
        "other" : 2
    }
}

我现在面临的问题是如何将数据保存到现有的模型实例中。

 var modelInstance = new ModelA({userId: user.id, providers: ['111111111','222222222'], countByType: userProviderData.countByType});
           UserProvider.save({validate: false, throws: false },function(err, user) {
             if(err) {

               console.log('Errorsssssss ',err);
             } else {
               console.log(user);
             }
           });

检查了以下文档,但这是在创建新实例,而不是保存到现有模型中。

https://apidocs.strongloop.com/loopback/v/1.5.1/#model-save-options-callback

任何帮助将不胜感激。

你应该使用类似 updateAll 的东西:

ModelA.updateAll({_id: yourId}, data);

或者使用setId然后保存:

var modelInstance = new ModelA(data);
modelInstance.setId(yourId);
modelInstance.save();

在您的示例中,它没有更新数据的原因是没有传递给模型构造函数的 id,您应该传递它或使用 setId。