美文网首页
mongodb笔记02--基础命令

mongodb笔记02--基础命令

作者: 机智的老刘明同志 | 来源:发表于2018-10-17 00:38 被阅读14次

    基础命令(建库建表):

        查看当前的数据库:

            show dbs

        选择库:    

            use databaseName

        查看当前库下的表(collection):

            show tables/collections 

        建库(Mongodb的库是隐式创建,可以use一个不存在的库。然后在该库下创建collection,即可完成建库):

            ①创建collection

                db.createCollection(‘collectionName’)  

            ②隐式创建collection(直接向不存在的collection中插入数据) 

                db.collectionName.insert(document);    

            ③删除collection     

                db.collectionName.drop()        

            ④删除database

                db.dropDatabase();  

    基础命令(CURD):

        insert:

            db.collectionName.insert(document);

        delete:

            db.collectionName.remove(查询表达式, 选项);

            db.stu.remove({gender:’m’,true});   删除stu表中gender属性为m的文档,只删除1行。

                ①查询表达式依然是个json对象

                ②查询表达式匹配的行,将被删掉.

                ③如果不写查询表达式,collections中的所有文档将被删掉.

                ④选项指是否只删一行, 默认为false

        update:

            db.collection.update(查询表达式,新值,选项);

            db.news.update({name:'QQ'},{name:'MSN'});   选中news表中,name值为QQ的文档,并把其文档值改为{name:’MSN’},

            注意:这里新文档直接替换了旧文档,而不是修改。文档中的其他列也不见了,改后只有_id和name列了。如果是想修改文档的某列,可以用$set关键字

            db.collectionName.update({name:'QQ'},{$set:{name:’MSN’}})

                $set修改某列的值

                $unset删除某个列

                $rename重命名某个列

                $inc增长某个列

            upsert和mult参数:{upsert:true/false , multi:true/false}

            db.stu.update({name:'wuyong'},{$set:{name:'junshiwuyong'}},{upsert:true}); 如果有name=’wuyong’的文档,将被修改。如果没有,将添加此新文档

            db.news.update({age:21},{$set:{age:22}},{multi:true});  multi:是指修改多行,把news中所有age=21的文档,都修改

        find:

            db.collections.find(查询表达式,{列一:1,列二:1});

                ①db.stu.find()    查询所有文档所有内容

                ②db.stu.find({},{gendre:1})    查询所有文档,的gender属性 (_id属性默认总是查出来)

                ③db.stu.find({},{gender:1, _id:0})    查询所有文档的gender属性,且不查询_id属性

                ④db.stu.find({gender:’male’},{name:1,_id:0});    查询所有gender属性值为male的文档中的name属性

    查询表达式:

            1:最简单的查询表达式

                {filed:value}     是指查询field列的值为value的文档

            2: $ne -->  !=

                {field:{$ne:value}}    是指查filed列的值 不等于value的文档

            3: $nin --> not in

            4: $all    

                {field:{$all:[v1,v2..]}}    是指取出field列是一个数组,且至少包含 v1,v2值

            5: $exists

               {field:{$exists:1}}     查询出含有field字段的文档

            6: $nor,

               {$nor,[条件1,条件2]}     是指所有条件都不满足的文档为真返回

            7:用正则表达式查询 以”诺基亚”开头的商品

                例:db.goods.find({goods_name:/诺基亚.*/},{goods_name:1});

            8:用$where表达式来查询

                例:db.goods.find({$where:'this.cat_id != 3 && this.cat_id != 11'});

            注意:用$where查询时, mongodb是把bson结构的二进制数据转换为json结构的对象,然后比较对象的属性是否满足表达式。速度较慢

    相关文章

      网友评论

          本文标题:mongodb笔记02--基础命令

          本文链接:https://www.haomeiwen.com/subject/pdokzftx.html