2019独角兽企业重金招聘Python工程师标准>>>
利用ORM2创建数据表
//定义 model
var Person = db.define("person", {
name : String,
age:Number
}
, {
methods: {
getAge: function () {
return this.age ;
}
});
//同步 model 到数据库
Person.sync(function (err) {
console.log("create Person table successfully!")
});
执行上面的代码后,数据库会创建person表,除了包括name和age的字段,还包括主键id字段 。当然,这里的id是默认的名称,如果你想改成其他名字,也可以,如下:这样主键就是person_id了
var Person = db.define("person", {
name : String
}, {
id : "person_id"
});
执行原生的SQL语句
如果ORM2提供的接口不能实现原生SQL语句的功能,那ORM2提供了执行原生的SQL语句接口
db.driver.execQuery("SELECT id, email FROM person", function (err, data) { //your code })
给model添加方法
一种是在定义model的时候添加,如上面代码的methods:
另一种是在定义model之后添加(类似静态方法),如:
Person.printinfo=function(parm){
console.log(parm);
}
Person.printinfo("nodejs orm2 methods");
数据查询
ORM2提供了很方便又强大的数据查询,如:Person.find({ age: 18 }, 2, function (err, people) {
// 查询年龄为18岁的前两条记录
});
Person.find({ age: 18 }, "age", function (err, people) {
// 查询年龄为18岁并升序返回});
Person.find({ age: 18 }, [ "age", "Z" ], function (err, people) {
// 查询年龄为18岁并降序返回
});
Person.count({ age: 18 }, function (err, count) {
//查询年龄为18的person有多少条
console.log("We have %d Does in our db", count);
});
链式风格查询,很强大
Person.find({ age: 18 }).limit(3).offset(2).only("name").run(function (err, people) {
// 查询年龄为18岁,跳过前两条记录并只保留三条记录
// 且返只回名字;
});
比较常用的就是这些了,若童鞋们想了解得更深入,可以去官网 https://npmjs.org/package/orm学习学习