MongoDB笔记

安装

详见官网

启动

  • 启动服务器
    mongod --dbpath=数据存放路径 //需要切换到安装目录的bin目录下
  • 启动客户端
    输入mongo进入命令行 //需要切换到安装目录的bin目录下

基本操作(shell)

show dbs  // 显示所有的数据库
db // 查看当前的数据库
use 数据库名 // 新建或使用数据库
show collections // 显示当前数据库的集合
db.集合名.find() // 显示当前集合中的所有数据
db.集合名.insert(json数据) // 往集合中插入数据

db.dropDatabase() // 删除当前数据库
db.集合名.drop() // 删除当前集合
db.集合名.update(...) // 修改数据
db.集合名.createIndex() // 创建索引
mongonimport -db 数据库名 --colltion 集合名 --drop --file 文件名

node连接(mongoose)

  • mongoose相关名词
    • Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
    • Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
    • Entity : 由Model创建的实体,他的操作也会影响数据库
  • 快速开始
 mongoose = require('mongoose');
// 创建一个数据库连接
mongoose.connect('mongodb://localhost/url_record');

// 创建连接
const db = mongoose.connection;
// 连接错误处理
db.on('error', console.error.bind(console, 'connection error:'));

// 连接成功后的处理
db.once('open', function(callback) {
  // 创建一只小猫原型(schema),用来定义数据库结构
  var kittySchema = mongoose.Schema({
    name: String
  });

  // 给schema添加方法必须放在shema编译成model之前
  kittySchema.methods.speak = function() {
    //var greeting = this.name? "名字是" + this.name: "没有名字";
  }

  // 将小猫schema编译成model
  var Kitten = mongoose.model('Kitten', kittySchema);

  // 实例化一只fluffy小猫
  var fluffy = new Kitten({ name: 'fluffy' });

  // 保存数据
  fluffy.save(function(err, fluffy) {
    if (err) return console.error(err);
    fluffy.speak();
  });
}); 

GUI客户端

  • MongoChef Core

参考文档