MongDB 操作

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。它的特点:高性能、易部署、易使用,存储数据非常方便。
 
安装
windows下安装

一、下载地址
二、命令行下运行 MongoDB 服务器
为了从命令提示符下运行MongoDB服务器,你必须从MongoDB目录的bin目录中执行mongod.exe文件。
 或者将bin目录配置到环境变量path中。
在c盘下创建db文件夹,终端中进入mongo的安装目录的bin下,然后终端中执行下面的命令,就可以启动mongo服务器了
 > mongod --dbpath c:\db\ 
三、MongoDB后台管理 Shell (控制台中使用mongo)
> mongo

 Mac 系统上安装


一、安装 在Mac OS上面安装MongoDB,你可以通过编译源代码来安装 ,也可以在Mac OS上使用Homebrew安装。 这里介绍使用Homebrew安装MongoDB。 首先更新Homebrew的package数据库:
 $ brew update 
$ brew install mongodb
 二、启动MongoDB
 $ mongod --config /usr/local/etc/mongod.conf 
三、使用MongoDB 
$ mongo
一个mongodb中可以建立多个数据库。MongoDB的默认数据库为"db",该数据库存储在data目录中。 MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
 
数据库命名:通过标识符,一般是utf-8字符串,不能为空,不能用local/admin/config这三个
 
mongo的基础指令
 
mongo的基础指令

 show dbs 获取你当前所有的数据库
 use dataBase_name 创建数据库(没有-创建/存在-使用) 
db 指查询你当前的数据库 
db.stats() 查询你当前数据库的状态
 db.dropDatabase() 删除你当前的数据库 
db.help() 查询帮助
 db.version() 获取你当前数据库的版本
 db.collection_name.help() 查询任意集合可以使用方法的帮助
 db.collection_name.find() 查询你当前集合内的信息
 
 
 
使用 use music 创建数据库
创建数据库之后查看没有出现music,
需要写入一个文档集合album;  
 insert插入
 db.album.insertOne({‘title’:’xxxx’}),
 查看采用db.album.find(); 
插入多条数据insertMany([{},{},{}])

 
在js 中操作 mongodb
需要  本地安装mongodb
npm i monggodb -D
 
创建一个js文件写入下面代码
//要在 MongoDB 中创建一个数据库,
//首先我们需要创建一个 MongoClient 对象,然后配置好指定的  URL 和 端口号。
//
//如果数据库不存在,MongoDB 将创建数据库并建立连接
//连接数据库,创建集合
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/';
var dbname  = 'test';
MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    console.log('数据库已创建');
    var dbase = db.db(dbname);
    
    dbase.createCollection('site', function (err, res) {
        if (err) throw err;
        console.log("创建集合!");
        db.close();
    });
});
 
插入(增加)数据 
//插入数据
//向user表中插入数据
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db(dbname);
    var myobj = { username: "zs", password: "123" };
    dbo.collection("user").insertOne(myobj, function(err,  res) {
        if (err) throw err;
        console.log("文档插入成功");
//插入的数据产生的结果
        console.log(res])
        db.close();
    });
});
 
插入多条数据
 
//插入多条数据
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db(dbname);
    var myobj =  [
        { username: 'lisi', password: '1111', type: '1'},
        { username: 'wangwu', password: '222', type: '2'}
       ];
    dbo.collection("user").insertMany(myobj,  function(err, res) {
        if (err) throw err;
        console.log("插入的文档数量为: " +  res.insertedCount);
        
        console.log(res)
        db.close();
    });
});
 
 
查询数据
//查询数据
//可以使用 find() 来查找数据, find() 可以返回匹配条件的所有数据。
//如果未指定条件,find() 返回集合中的所有数据。
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db(dbname);
    dbo.collection("user").  find({}).toArray(function(err, result) { // 返回集合中所有数据
        if (err) throw err;
        console.log('查询成功'+result.length);//结果为数组
        db.close();
    });
});
 
查询指定条件
//查询指定条件的数据
//查询用户名为 lisi的用户
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db(dbname);
     var whereStr = {"username":'lisi'};  // 查询条件
     dbo.collection("user").find(whereStr).toArray(function(err, result) {
        if (err) throw err;
        console.log('查询lisi成功'+result);
        db.close();
    });
});
 
 
 
更新数据
 
//更新一条数据
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db(dbname);
    var whereStr = {"username":'lisi'};  // 查询条件
    var updateStr = {$set: { "password" : "test" }};
    dbo.collection("user").updateOne(whereStr, updateStr,  function(err, res) {
        if (err) throw err;
        console.log("文档更新成功");
        db.close();
    });
});
// 更新多条数据
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db(dbname);
    var whereStr = {"username":'lisi'};  // 查询条件
    var updateStr = {$set: { "password" : "test222" }};
    dbo.collection("user").updateMany(whereStr,  updateStr, function(err, res) {
        if (err) throw err;
        console.log("文档更新成功");
        console.log('插入多条成功 ,'+res.result.nModified  + " 条文档被更新");
        db.close();
    });
});
 
排序
 
//排序 使用 sort() 方法,该方法接受一个参数,规定是升序(1)还是降序(-1)。
//{ _id: 1 }  // 按 _id 字段升序
//{ _id: -1 } // 按 _id 字段降序
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db(dbname);
    var mysort = { _id: 1 };
     dbo.collection("user").find().sort(mysort).toArray(function(err, result) {
        if (err) throw err;
        console.log(result);
        db.close();
    });
});
 
 
查询分页
 
//如果要设置指定的返回条数可以使用 limit() 方法,该方法只接受一个参数,
//指定了返回的条数。
 
// limit():读取两条数据
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db(dbname);
     dbo.collection("user").find().limit(2).toArray(function(err, result) {
        if (err) throw err;
        console.log(result);
        db.close();
  });
});
//如果要指定跳过的条数,可以使用 skip() 方法。
//skip(): 跳过前面两条数据,读取两条数据
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db(dbname);
     dbo.collection("user").find().skip(2).limit(2).toArray(function(err, result) {
        if (err) throw err;
        console.log(result);
        db.close();
  });
});
 
 

猜你喜欢

转载自www.cnblogs.com/willinsist/p/10119718.html