Javascript sails.js更新或添加新行

Javascript sails.js更新或添加新行,javascript,sails.js,waterline,Javascript,Sails.js,Waterline,我正在启动一个使用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-

我正在启动一个使用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": {
      "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"
  }
]
然而,我无法为我的用户弄清楚如何在“登录”下“更新”或“插入”新行

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


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

我会将您的“Logins”参数更改为array。更新时可以使用$push。Waterline仅支持$set操作,因此,如果要执行此操作,则需要像这样使用.native():

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
    )
})
要了解如何使用native,请参阅