sails.js更新或添加新行

sails.js update or add new row

本文关键字:添加 新行 更新 js sails      更新时间:2023-11-06

我正在使用sails.js启动一个项目,我有点困惑。

我有一个类似的结构

[
  {
    "logins": {
      "1": {
        "login time": "2016-04-02T11:40:06.731Z"
     }
    }
    "username": "test",
    "password": "test",
    "createdAt": "2016-04-02T11:40:06.731Z",
    "updatedAt": "2016-04-02T11:40:06.731Z",
    "id": "56ffaf9692bcf108169ef7c8"
  }
]

现在,当用户再次登录时,理想情况下,我希望数据看起来像这个

[
  {
    "logins": {
      "1": {
        "login time": "2016-04-01T11:40:06.731Z"
     },
      "2": {
        "login time": "2016-04-02T11:40:06.731Z"
     }
    }
    "username": "test",
    "password": "test",
    "createdAt": "2016-04-01T11:40:06.731Z",
    "updatedAt": "2016-04-01T11:40:06.731Z",
    "id": "56ffaf9692bcf108169ef7c8"
  }
]

然而,我无法为我的用户找出如何在"登录"下"更新"或"插入"新行。

创建第一条记录很好,到目前为止,我能想到的最好的方法是将登录的当前值读取到缓冲区中,然后重新插入所有值。

这似乎很笨拙。有人知道帆是否有一些内置的方法来支持我试图实现的目标吗?

我会将您的"Logins"参数更改为数组。然后您可以在更新时使用$push。Waterline只支持$set操作,所以如果你想这样做,你需要使用.nature():

Model.native(function(error,collection){
    collection.update(
        {_id:YOURID}, // where condition
        {$push:{logins:new Date()}}, // push new value to array
        {}, // options
        function(error,result){} // callback
    )
})

要了解如何使用本机,请参阅Node.js MongoDB Driver API-Collections