资讯专栏INFORMATION COLUMN

Mongoose增删查改

gityuan / 959人阅读

摘要:通过构造而成,除了具有定义的数据库骨架以外,还可以具体的操作数据库。通过创建的实体,它也可以操作数据库。但比更具操作性。

原文链接:Mongoose

前言

学数据库肯定需要知道怎么连接后台
Mongoose 是用来方便连接 MongoDBnode 的一个工具包
是时候学习一波

nodejs连接MongoDB

连接数据库前需要先打开数据库 MongoDB

yarn add mongoose  // 安装 mongoose 依赖
let mongoose = require("mongoose");
let db = mongoose.connect("mongodb://127.0.0.1:27107/test");
db.connection.on("error", function (error) {
    console.log("数据库连接失败:" + error);
});
db.connection.on("open", function () {
    console.log("------数据库连接成功!------");
});
操纵数据

Schema:数据库集合的模型骨架,或者是数据属性模型传统意义的表结构。

Model :通过Schema构造而成,除了具有Schema定义的数据库骨架以外,还可以具体的操作数据库。

Entity:通过Model创建的实体,它也可以操作数据库。

但Model比Entity更具操作性。

let mongoose = require("mongoose");
let db = mongoose.connect("mongodb://127.0.0.1:27017/test");
let TestSchema = new mongoose.Schema({  // 使用 Schema 创建集合结构(表结构)
    name : { type:String },
    age  : { type:Number, default:0 },
    email: { type:String },
    time : { type:Date, default:Date.now }
});
let TestModel = db.model("test1", TestSchema );  // test1 集合使用 Schema 结构,若不存在 test1 集合,则创建
let TestEntity = new TestModel({  // 使用 TestModel 新建一个数据
    name : "helloworld",
    age  : 28,
    email: "helloworld@qq.com"
});
TestEntity.save(function(error,doc){  // 保存数据于 test1 
  if(error){
     console.log("error :" + error);
  }else{
     console.log(doc);
  }
});
Model增删查改
let TestSchema = new mongoose.Schema({
    name : { type:String },
    age  : { type:Number, default:0 },
    email: { type:String },
    time : { type:Date, default:Date.now }
});
let TestModel = db.model("test1", TestSchema);  
// let TestModel = db.model("test1", new mongoose.Schema());
// 集合结构为空的话,不能插入数据  

Model方法 create

TestModel.create({ name:"model_create", age:26}, function(error,doc){
   if(error) {
       console.log(error);
   } else {
       console.log(doc);
   }
});

entity方法 save

let Entity = new TestModel({name:"entity_save",age: 27});

Entity.save(function(error,doc) {
    if(error) {
        console.log(error);
    } else {
        console.log(doc);
    }
});

Model.remove(查询条件,callback);

let conditions = {name: "helloworld"};
TestModel.remove(conditions, function(error){
    if(error) {
        console.log(error);
    } else {
        console.log("Delete success!");
    }
});

Model.update(查询条件,更新对象,callback)

var conditions = {name : "test_update"};
var update = {$set : { age : 16 }};  // $set 表示只修改 age,否则全覆盖
TestModel.update(conditions, update, function(error){
    if(error) {
        console.log(error);
    } else {
        console.log("Update success!");
    }
});

Model.find({}, function(error, docs));
若第一个参数为空对象,则 docs 为所有数据

TestModel.find({ "age": 28 }, function (error, docs) {
  if(error){
    console.log("error :" + error);
  }else{
    console.log(docs); //docs: age为28的所有文档
  }
}); 
结语

学习源: Mongoose
真是通俗易懂的操作呀
MongoDB 好感度 up up up
?

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18989.html

相关文章

  • 在Node中基于Mongoose对MongoDB进行增删查改(CRUD)操作(一)

    摘要:如图连接成功后,显示你的数据库,在这个节目可以对数据库进行操作。如图安装与加载首先假定你已经安装了,命令行工具输入在使用的文件中即可。创建读取更新删除单值读取上文是在中基于对进行增删查改操作的简单介绍,以后会有进阶的文章。 关键词:mongodb安装 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查询,增加,修改,删除 工具介绍 Mon...

    lemon 评论0 收藏0
  • 在Node中基于Mongoose对MongoDB进行增删查改(CRUD)操作(一)

    摘要:如图连接成功后,显示你的数据库,在这个节目可以对数据库进行操作。如图安装与加载首先假定你已经安装了,命令行工具输入在使用的文件中即可。创建读取更新删除单值读取上文是在中基于对进行增删查改操作的简单介绍,以后会有进阶的文章。 关键词:mongodb安装 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查询,增加,修改,删除 工具介绍 Mon...

    SillyMonkey 评论0 收藏0
  • VueCli+Node+mongodb打造个人博客(含前台展示及后台管理系统)(上)

    摘要:前言学习前端也有一段时间了做个个人博客网站吧正好总结练习一下这段时间的所学文章很长,会拆成三篇来讲项目地址效果后台管理系统前端页面架构可以看到,在整个项目中,没有页面的跳转只有前后端的数据交换,所有的页面更新都是组件更新和数据更新后端只对数 前言 学习前端也有一段时间了做个个人博客网站吧正好总结练习一下这段时间的所学文章很长,会拆成三篇来讲 项目github地址:https://git...

    不知名网友 评论0 收藏0
  • VueCli+Node+mongodb打造个人博客(含前台展示及后台管理系统)(上)

    摘要:前言学习前端也有一段时间了做个个人博客网站吧正好总结练习一下这段时间的所学文章很长,会拆成三篇来讲项目地址效果后台管理系统前端页面架构可以看到,在整个项目中,没有页面的跳转只有前后端的数据交换,所有的页面更新都是组件更新和数据更新后端只对数 前言 学习前端也有一段时间了做个个人博客网站吧正好总结练习一下这段时间的所学文章很长,会拆成三篇来讲 项目github地址:https://git...

    tinyq 评论0 收藏0
  • VueCli+Node+mongodb打造个人博客(含前台展示及后台管理系统)(上)

    摘要:前言学习前端也有一段时间了做个个人博客网站吧正好总结练习一下这段时间的所学文章很长,会拆成三篇来讲项目地址效果后台管理系统前端页面架构可以看到,在整个项目中,没有页面的跳转只有前后端的数据交换,所有的页面更新都是组件更新和数据更新后端只对数 前言 学习前端也有一段时间了做个个人博客网站吧正好总结练习一下这段时间的所学文章很长,会拆成三篇来讲 项目github地址:https://git...

    kidsamong 评论0 收藏0

发表评论

0条评论

gityuan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<