Sails.js 在Sails中使用数组属性类型
我希望在我的应用程序中使用sails属性类型“array”,但我在任何地方都找不到相关文档 我想做以下几点:Sails.js 在Sails中使用数组属性类型,sails.js,waterline,Sails.js,Waterline,我希望在我的应用程序中使用sails属性类型“array”,但我在任何地方都找不到相关文档 我想做以下几点: module.exports = { attributes : { images: { type: ['string'] }, location: { type: ['float','float'] } } } 图像是一个数组,它将保存图像URL列表,位置将保存2个浮动。这在赛欧公司行吗?否则我怎么才能让它工作。 谢谢 PS:我只使用MongoDB据我所
module.exports = {
attributes : {
images: {
type: ['string']
},
location: {
type: ['float','float']
}
}
}
图像是一个数组,它将保存图像URL列表,位置将保存2个浮动。这在赛欧公司行吗?否则我怎么才能让它工作。
谢谢
PS:我只使用MongoDB据我所知,您只能这样指定它:
module.exports = {
attributes : {
images: {
type: 'array'
},
location: {
type: 'array'
}
}
}
请参见sailsjs提供了一个函数来解决您的问题,您可以尝试以下方法
module.exports = {
attributes : {
images: {
type: 'string'
},
location: {
type: 'json'
}
}
}
从Sails 1.0开始,不再支持类型阵列 不再支持“数组”类型。若要在模型中使用此类型,请更改 将
type
设置为支持的类型之一,并将columnType
属性设置为列
模型适配器支持的类型,例如{type:'json',columnType:'array'}
解决方案一
设置属性以存储图像数组和位置数组
module.exports = {
attributes : {
images: {
type: 'json'
columnType: 'array'
}
location: {
type: 'json'
columnType: 'array'
}
}
}
解决方案二
一个更优雅的解决方案是设置一个对象来存储文件名和位置数据
module.exports = {
attributes : {
images: {
type: 'json'
}
}
}
然后在控制器中,您将对象属性存储为数组
let imageData = {
filename: ["image1.jpg", "image2.jpg", "image3.jpg"],
location: [154.123123, 155.3434234, 35.12312312]
};
Images.create({images:imageData});
将数据存储到json对象时存在的一些问题是,“image1.jpg、image2.jpg、image3.jpg”之类的字符串将存储在MongoDb中,不用担心。。。doh。请确保在发布时您可能需要拆分数据。对于sails 1.0,拆分(','),对于阵列,您可以尝试我仅用于共享的这种方式。 此外,您还可以在更新前替换并处理本机查询(),并删除水线更新的属性。希望这对你有帮助
变体:
{
键入:“json”,
columnType:'数组',
自定义:(值)=>
{
/*
[
代码:唯一,字符串
名称:字符串,最大长度[30]
成本:数量有限
价格:数量有限
默认值:布尔值
]
*/
返回i数组(值)
&&_u.every(值,(变量1)=>
{
return_uu.countBy(值,(variant2)=>
{
返回variant2.code==variant1.code?'eq':'uneq';
}).eq请为您的答案添加简短的解释,以供将来的访问者使用。我不确定这是如何工作的。图像
属性应该是一个字符串数组,但您只有字符串
。此外,从位置的语法来看,这指定它的值可以是浮点
或浮点
对不起,我是just edditing my post以解决您的问题类型“array”不再受支持。若要在模型中使用此类型,请将type
更改为受支持的类型之一,并将columnType
属性设置为模型适配器支持的列类型,例如,{type:'json',columnType:'array'}