Mongodb相关

1.创建一个文件夹作为数据库存放的目录
2.打开cmd cd到Mongodb/bin目录去
3.执行mongod --dbpath "第一项创建的文件夹(数据库数据存放目录)"
4.打开新终端,原窗口最小化,运行bin目录下的mongo可执行文件,连接数据库

MongodbShell命令

  1. use dbName

切换到某个数据库,如果dbname不存在,则会创建并切换

  1. db.dropDatabase()

删除当前数据库(前提是先进入到当前数据库)

  1. show dbs

查询所有的数据库

  1. db.createCollection("tableName")

在当前数据库中创建一张数据表,这个命令不常用

  1. show collections

查看当前数据库中的所有表(数据集合)
db.tableName.insert();
使用表时如果不存在,会自动创建

  1. db.tableName.insert({name:'baimao',age:12,sex:'女'})

创建一张表并插入一条数据

  1. db.tableName.save({name:'baimao',age:12,sex:'女'})

向数据库的某个数据集合插入一条数据

  1. db.tableName.find({name:'baimao',age:12})

查询name=baimao且age=12的元祖
根据查询条件来查询当前表,并集查询条件用,号
find也可以不写参数,查出全部数据

  1. db.tableName.find({$or:[{name:'baimao'},{age:18}]});

查询满足name=‘baimao’或者age=18的元祖

  1. db.tableName.find({age:{$lt:23}})

    db.tableName.find({age:{$lte:23}})

    db.tableName.find({age:{$gt:23}})

    db.tableName.find({age:{$gte:23}})

    db.tableName.find({age:{$ne:23}})

查询年龄<(<=,>,>=,!=)23的所有元祖

  1. 支持正则表达式的查询
查询条件支持正则表达式:
     db.people.find({name:/四/})            查找姓名包含:四 的人
     db.people.find({name:/^张/})           查找姓 张 的人
     db.people.find({name:/^张.$/})         查找姓 张 的人并且不能以空格结束
     db.people.count()                      集合中数据个数
     db.people.find({},{name:1,_id:0})      只查找name这一列(field)

  1. db.person.count()

计算当前表的元祖数目

  1. db.person.find().sort({age:1})

将年龄正序排序

  1. db.person.find().sort({age:-1})

将年龄逆序排序

  1. db.person.find().skip(n)

跳过(删除)查询结果中前n条数据。

  1. db.person.find().limit(n)

从查询结果中取前n条数据。

  1. db.preson.find().skip(2).limit(3)

从查询结果中取第二条后开始的三条数据


1.插入数据: db.person.insert({"name":"baimao","age":"16"});
2.查找数据: db.person.find();
            db.person.find({"name":"baimao"}) ==>可以根据指定查询条件查询
3.更新数据: 整体更新:
                db.person.update({"name":"baimao"},{"name":"baimao","age":"15"})        
                [这种方法在更新字段处写全全部的key和value值]
            局部更新:
                (1)
                var user = db.person.findOne({"name":"baimao"});
                user.age = 12;
                db.person.update({"name":"baimao"},user);
                (2)$inc
                db.person.update({"name":"baimao"},{$inc:{"age":30}}); 将baimao的年龄增加30
                (3)$set
                db.person.update({"name":"baimao"},{$set:{"age":12}}); 将baimao的年龄设置为12
                批量更新
                db.person.update({"name":"baimao"},{$set:{"age":12}},{mutli:true})
                [将所有name为baimao的字段的age属性都设置为12

                更新数据(如若没有就增加)
                db.person.update({"name":"baimao"},{$set:{"age":12}},{mutli:true},{upsert:true})    
                [将update的第四个参数设置为true就可实现在查询不到结果的情况下直接增加一条记录]




4.删除数据: 
            db.person.remove({}); ==> 删除全部
            db.person.remove({"name":"baimao"}) 删除指定数据
5.查询:   
            $gt     >
            $gte    >=
            $lt     <
            $lte    <=
            $ne     !=
            无(:)    =
            无(,)    &&
            $or     ||      (or指的是在某些键值对中查询)
            $in     in      (in指的是某个key值在一个value值组成的数组中查询)
            $nin    notIn

            正则查询:   db.person.find({"name":/^b/,"name":/o$/})   name字段以b开头以o结尾
            js方法查询: db.person.find({$where:function() {return this.name == 'baimao'});

Mongodb与Nodejs相关

1.引入Mongodb接口Moogoose
2.node连接数据库(moogoose.connect("mongodb://localhost:27017/data")) data为数据库名称
2.定义模式Schema(模式中定义属性或字段的类型等)模式定义结构 
    var Schema = moogoose.Schema
    var student_Schema = new Schema( {
        name:String,
        id:Number,
        ...
    },
    {
        //禁止moogoose创建集合时默认给集合添加versionKey属性
        versionKey:false
    });

3.根据模式Schema定义模型model 模型操作实例  moogose.model("Student",student_Schema)
4.访问模型 var myStudent = mongoose.model("Student");

或者
    var myStudent = mongoose.model("Student",{
        name:String,
        id:Number,
        ...
    },{
        versionKey:false
    });

5.创建实例
    var student = new myStudent({
        name:'baimao',
        id:123,
    })


归纳:
1.引入mongoose
2.设置mongoose连接并监听on('open'/'error')
3.引用 mongoose自带的Schema
4.通过mongoose自带的Schema设置自定义的Schema(定义表的结构)
5.将自定义的Schema设置在mongoose.model()中 mongoose.model("Comment",Comment_schema); 设置一张表的结构
6.自定义model var MyComment = mongoose.model("Comment"); 创建表
7.创建表的实例 var sam = new MyComment({name:'hhh',age:'jjj'}); 只在save的时候用
    mongoose数据的删改查方法通过表来实现 即MyComment来实现 而增加需要表的实例