如何使用 Sails.js 和 MongoDB 存储嵌套的 objects 数组?
How to store an array of nested objects using Sails.js with MongoDB?
我正在尝试在 sails.js 模型中保存嵌套的 object。
这是它的样子:
module.exports = {
schema: true,
attributes: {
label: {
type: 'string',
required: true,
},
consumption: [{
timestamp: {
type: 'string',
required: true,
},
value: {
type: 'float',
required: true,
},
}],
}
};
为了将值包含在数组中,我正在执行以下操作(在控制器内部):
if(!plug.consumption)
plug.consumption = [];
plug.consumption.push({
timestamp: req.param('timestamp'), /* Format: '2016-04-14T16:18:24.972Z' */
value: req.param('value'), /* Format: '6.5' */
});
plug.save(function (err){
if(err){
res.send("Error");
return next(err);
}
});
但是当执行 plug.save 时,风帆断裂并显示 Error: Unknown rule: 0
我搜索了如何在 sails.js 上存储 object 的数组,但没有找到任何有用的方法。
有人能帮忙吗?
谢谢
您在 consumption
中使用的语法错误或至少没有记录。 Waterline 支持模型和消耗模型之间的属性类型 json
和 array
as documented but you can't define a schema for them. To define a schema you have to use a One-to-Many relationship。
我正在尝试在 sails.js 模型中保存嵌套的 object。 这是它的样子:
module.exports = {
schema: true,
attributes: {
label: {
type: 'string',
required: true,
},
consumption: [{
timestamp: {
type: 'string',
required: true,
},
value: {
type: 'float',
required: true,
},
}],
}
};
为了将值包含在数组中,我正在执行以下操作(在控制器内部):
if(!plug.consumption)
plug.consumption = [];
plug.consumption.push({
timestamp: req.param('timestamp'), /* Format: '2016-04-14T16:18:24.972Z' */
value: req.param('value'), /* Format: '6.5' */
});
plug.save(function (err){
if(err){
res.send("Error");
return next(err);
}
});
但是当执行 plug.save 时,风帆断裂并显示 Error: Unknown rule: 0
我搜索了如何在 sails.js 上存储 object 的数组,但没有找到任何有用的方法。
有人能帮忙吗?
谢谢
您在 consumption
中使用的语法错误或至少没有记录。 Waterline 支持模型和消耗模型之间的属性类型 json
和 array
as documented but you can't define a schema for them. To define a schema you have to use a One-to-Many relationship。