MongoDB学习与实践

最近更新时间:2017年12月09日11:38:46

《我的博客地图》

    选择了从事技术岗位,就需要不断学习和探索自己未知的知识领域,因为有一天我们掌握的现有技术一定会被颠覆,社会一直在进步,科技引领时代发展,保持学习是掌握自己命运的法宝。

1、概要

    传统的MySQL、Oracle等关系型数据库,在存储数据之前需要为数据定义数据表,并且为该数据表定义一些字段,从而使数据模型得到实现。在关系型数据库中,一个数据表就是一个数据架构。它预先定义了开发者可以使用的数据模型。
    MongoDB是面向文档的数据库,不是关系型数据库。被认为是无数据架构的。然而数据架构仍然是有用的,可以使人以易读的方式来描述数据库中的数据内容,并为这些数据定义一些规则。

    mongod 是用来连接到mongodb数据库服务器的,即服务器端。
    mongo 是用来启动MongoDB shell的,是mongodb的命令行客户端。

    安装

    Mac默认安装路径/usr/local/var/mongodb,环境变量路径,数据库程序/usr/local/bin/mongo,数据库服务器/usr/local/bin/mongod

    配置

查看配置文件,/usr/local/etc/mongod.conf,修改默认数据库路径为/Users/wanshaobo/document/mongo/db,修改数据库日志文件为/Users/wanshaobo/document/mongo/log/mongo.log

    启动

启动默认数据库服务器,sudo mongod

启动指定数据库服务器,mongod --dbpath /Users/wanshaobo/document/mongo/db  --logpath /Users/wanshaobo/document/mongo/db/MongoDB.log

启动数据库程序,$ mongo,常用命令如下:

$ db 查看当前所连接的数据库

$ use dbname 创建/切换数据库

$ show dbs 查看存在的数据库

$ exit 退出程序

$ db.abc.find().pretty()

$ db.abc.insert();

$ db.abc.update()

    可视化工具

robomongo

    数据库文件迁移

2、Mongoose-连接express框架和MongoDB数据库的纽带

    导入mongoose库

var mongoose = require('mongoose');

    获取db对象

var db = mongoose.connection;

    db对象事件

db.on(name,callback);//name:error,open,connection,connected,disconnecting,disconnected

    启动

mongoose.connect(''mongodb://localhost:27017/abc'')

    关闭
mongoose.connection.close(); 等同于 db.close();
mongoose.disconnect();

    Schema-数据模型(数据集),用来定义数据结构和类型,创建数据模型:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
username: {
type: String,
unique: true
},
password: {
type: String
},
age: Number,
address: String,
createAt: {
type: Date,
default : Date.now()
}
});

    动态扩展数据模型:

userSchema.add({sex:String});

    数据模型支持的数据类型:String,Number,Date,Buffer,Boolean,Mixed,Objectid,Array

    Model-数据模型的构造函数,对数据进行增删改查操作,创建数据模型(数据对象)构造函数:

var User = mongoose.model('users', userSchema);

    数据模型(数据对象)实例化:

var wanshaobo = new User({

username: 'wanshaobo' ,
password: '*******' ,
age: 28,
address: 'beijing',
createAt: 2017-12-09

})

    实例方法

wanshaobo.methods.sayName = function(){}

    静态方法

userSchema.statics.printName = function(){}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值