博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
orm2 中文文档 3.1 模型属性
阅读量:7104 次
发布时间:2019-06-28

本文共 1786 字,大约阅读时间需要 5 分钟。

译者:

来源:

模型和一些关联具有一个或多个属性,每个属性有类型以及一些可选设置,你可以自行选择它们(或使用默认设置)。

类型

受支持的类型是:

  • text:文本字符串;
  • number:浮点数。你可以指定size2 | 4 | 8
  • integer:整数。你可以指定size2 | 4 | 8
  • booleantruefalse的值;
  • date:日期对象。你可以指定timetrue
  • enum:一个备选列表中的值;
  • object:JSON对象;
  • point:N维的点(不被广泛支持);
  • binary:二进制数据;
  • serial:自增长的整数,用于主键。

每个类型都有额外的选项。这个模型定义使用了它们中的绝大多数:

var Person = db.define("person", {    name    : { type: "text", size: 50 },    surname : { type: "text", defaultValue: "Doe" },    male    : { type: "boolean" },    vat     : { type: "integer", unique: true },    country : { type: "enum", values: [ "USA", "Canada", "Rest of the World" ] },    birth   : { type: "date", time: false }});

所有类型都支持required(布尔值),unique(布尔值)和defaultValue(文本)。文本类型也支持最大尺寸(数值)和big(布尔值,用于非常长的字符串)。数值类型是浮点数,支持size(数值,字节大小)和unsigned(布尔值)。日期类型支持time(布尔值)。

要注意8字节的数值。

如果你打算用默认选项,你可以使用原生类型来指定属性类型:

var Person = db.define("person", {    name    : String,    male    : Boolean,    vat     : Number, // FLOAT    birth   : Date,    country : [ "USA", "Canada", "Rest of the World" ],    meta    : Object, // JSON    photo   : Buffer  // binary});

将ORM字段映射到不同名称的数据库列中

var Person = db.define("person", {    name    : { type: 'text', mapsTo: 'fullname' }});

ORM属性name映射person表的fullname列。

自定义类型

你可以向ORM添加你自己的类型,像这样:

db.defineType('numberArray', {  datastoreType: function(prop) {
return 'TEXT' }, // This is optional valueToProperty: function(value, prop) {
if (Array.isArray(value)) { return value; } else { return value.split(',').map(function (v) {
return Number(v); }); } }, // This is also optional propertyToValue: function(value, prop) {
return value.join(',') }});var LottoTicket = db.define('lotto_ticket', { numbers: { type: 'numberArray' }});

一些可用的高级自定义类型,能够让你像 PostGIS 那样使用模型。请见 。

转载地址:http://xfjhl.baihongyu.com/

你可能感兴趣的文章
新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
查看>>
juery解决获取浏览器可视区域的兼容性问题
查看>>
Android中如何使用JUnit进行单元测试 eclipse
查看>>
微信硬件设备接入接口协议
查看>>
html+js实现四则元算计算器
查看>>
冒泡排序
查看>>
命名空间与use
查看>>
阅读和提问3 - 期中作业
查看>>
iphone 加速器demo
查看>>
Weblogic反序列化漏洞补丁更新解决方案
查看>>
.The server quit without updating PID file (/var/lib/mysql/pc.pid).
查看>>
tornado异步请求非阻塞
查看>>
Centos下找不到eth0设备的解决方法
查看>>
爬虫--Urllib库详解
查看>>
mathematica入门学习记录:
查看>>
问题:com.alibaba.dubbo.rpc.RpcException: Failed to invoke ......
查看>>
CSS3制作日历
查看>>
跟我一起学Linux-线程创建,类似FreeRTOS创建任务
查看>>
那些年踩过的WebAPI的坑(一)
查看>>
POJ2828:Buy Tickets(线段树)
查看>>