Skip to content

mododb

简介

mododb 是基于 mongodb 的 ORM 库,它提供了一系列的功能,使得开发者可以更加方便地使用 mongodb。

安装

mongoose 是链接 mongodb 数据库的工具

bash
npm install mongoose
npm install mongoose

连接 mongodb

javascript
const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost/test"); //test是数据库名称

const db = mongoose.connection;

db.on("error", console.error.bind(console, "connection error:"));

db.once("open", function () {
  console.log("数据库连接成功");
});

db.on("disconnected", function () {
  console.log("数据库断开连接");
});

db.on("close", function () {
  console.log("数据库关闭");
});
const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost/test"); //test是数据库名称

const db = mongoose.connection;

db.on("error", console.error.bind(console, "connection error:"));

db.once("open", function () {
  console.log("数据库连接成功");
});

db.on("disconnected", function () {
  console.log("数据库断开连接");
});

db.on("close", function () {
  console.log("数据库关闭");
});

定义模型

javascript
const mongoose = require("mongoose");

const Schema = mongoose.Schema;

const userSchema = new Schema({
  name: String,
  age: Number,
  email: String,
  created: { type: Date, default: Date.now },
});

// 模型,对文档(document)的抽象
// 第一个参数是模型名称,第二个参数是模型的属性
const User = mongoose.model("User", userSchema);

const user = new User({
  name: "张三",
  age: 18,
  email:,
});

user.create({
    name: "李四",
    age: 20,
    email:,
},function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("创建成功");
  }
});
const mongoose = require("mongoose");

const Schema = mongoose.Schema;

const userSchema = new Schema({
  name: String,
  age: Number,
  email: String,
  created: { type: Date, default: Date.now },
});

// 模型,对文档(document)的抽象
// 第一个参数是模型名称,第二个参数是模型的属性
const User = mongoose.model("User", userSchema);

const user = new User({
  name: "张三",
  age: 18,
  email:,
});

user.create({
    name: "李四",
    age: 20,
    email:,
},function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("创建成功");
  }
});

字段类型

javascript
string;
number;
boolean;
date;
array;
buffer;
ObjectId; // 对象id,需要使用mongoose.schema.Types.ObjectId()方法
mixed; // 任意类型,需要使用mongoose.Schema.Types.Mixed()方法
Decimal128; // 128位精度的浮点数
string;
number;
boolean;
date;
array;
buffer;
ObjectId; // 对象id,需要使用mongoose.schema.Types.ObjectId()方法
mixed; // 任意类型,需要使用mongoose.Schema.Types.Mixed()方法
Decimal128; // 128位精度的浮点数

常用方法

javascript
// 保存
user.save(function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("保存成功");
  }
});

// 查询
User.find();

User.findOne({ name: "张三" }, function (err, user) {
  if (err) {
    console.log(err);
  } else {
    console.log(user);
  }
});

// 删除
User.remove({ name: "张三" }, function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("删除成功");
  }
});

User.update({ name: "张三" }, { age: 20 }, function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("更新成功");
  }
});
// 保存
user.save(function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("保存成功");
  }
});

// 查询
User.find();

User.findOne({ name: "张三" }, function (err, user) {
  if (err) {
    console.log(err);
  } else {
    console.log(user);
  }
});

// 删除
User.remove({ name: "张三" }, function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("删除成功");
  }
});

User.update({ name: "张三" }, { age: 20 }, function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("更新成功");
  }
});

模块化

javascript
const mongoose = require("mongoose");

const Schema = mongoose.Schema;

const userSchema = new Schema({
  name: String,
  age: Number,
  email: String,
  created: { type: Date, default: Date.now },
});

// 导出模型
module.exports = mongoose.model("User", userSchema);

// 导入模型
const User = require("./user");

const user = new User({
  name: "张三",
  age: 18,
  email:,
});

user.create({
    name: "李四",
    age: 20,
    email:,
},function (err) {
  if (err) {
    console.log(err);
  }
});
const mongoose = require("mongoose");

const Schema = mongoose.Schema;

const userSchema = new Schema({
  name: String,
  age: Number,
  email: String,
  created: { type: Date, default: Date.now },
});

// 导出模型
module.exports = mongoose.model("User", userSchema);

// 导入模型
const User = require("./user");

const user = new User({
  name: "张三",
  age: 18,
  email:,
});

user.create({
    name: "李四",
    age: 20,
    email:,
},function (err) {
  if (err) {
    console.log(err);
  }
});