Javascript sails.js更新或添加新行
我正在启动一个使用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-
[
{
"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,请参阅