//定义 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" });
如果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");
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岁,跳过前两条记录并只保留三条记录 // 且返只回名字; });