mongodb命令

本文详细介绍了MongoDB的基础命令及数据库操作,包括库与集合的创建、文档的增删改查等核心功能,适合初学者快速掌握MongoDB的基本使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基础命令:

  • 1.1  show dbs 查看当前的数据库
  • 1.2  use databaseName 选库
  • 1.3  show tables/collections 查看当前库下的collection
  • 1.4 如何创建库?

    Mongodb的库是隐式创建,你可以use 一个不存在的库

    然后在该库下创建collection,即可创建库

  • 1.5 db.createCollection(‘collectionName’)    创建collection
  • 1.6 collection 允许隐式创建   Db.collectionName.insert(document);

  • 1.7 db.collectionName.drop();  删除collection

  • 1.8 db.dropDatabase();  删除database

 

二、基本操作增删改查

1、增: insert

介绍: mongodb存储的是文档,. 文档是json格式的对象.

语法: db.collectionName.isnert(document);

1: 增加单篇文档

Db.collectionName.insert({title:’nice day’});

2: 增加单个文档,并指定_id

Db.collectionName.insert({_id:8,age:78,name:’lisi’});

3: 增加多个文档

db.collectionName.insert([{time:'friday',study:'mongodb'},{_id:9,gender:'male',name:'QQ'}]);

2、删:remove

语法: db.collection.remove(查询表达式, 选项);

选项是指 {justOne:true/false},是否只删一行, 默认为false

3、改:update

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

例:db.news.update({name:'QQ'},{name:'MSN'});

     是指选中news表中,name值为QQ的文档,并把其文档值改为{name:’MSN’},

     结果: 文档中的其他列也不见了,改后只有_id和name列了.

     即--新文档直接替换了旧文档,而不是修改

     如果是想修改文档的某列,可以用$set关键字

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

注:修改时的赋值表达式

           $set 修改某列的值

           $unset 删除某个列

           $rename 重命名某个列

           $inc 增长某个列

           $setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段.

1:Option的作用:

{upsert:true/false,multi:true/false}

Upsert---是指没有匹配的行,则直接插入该行.(和mysql中的replace一样)

       例:db.stu.update({name:'wuyong'},{$set:{name:'junshiwuyong'}},{upsert:true});

            如果有name=’wuyong’的文档,将被修改

            如果没有,将添加此新文档

      例:db.news.update({_id:99},{x:123,y:234},{upsert:true});

            没有_id=99的文档被修改,因此直接插入该文档

multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)

       例:db.news.update({age:21},{$set:{age:22}},{multi:true});

           则把news中所有age=21的文档,都修改

4、查: find, findOne

语法: db.collection.find(查询表达式,查询的列);

Db.collections.find(表达式,{列1:1,列2:1});

         例1:db.stu.find()

                 查询所有文档 所有内容

         例2: db.stu.find({},{gender:1})

                查询所有文档,的gender属性 (_id属性默认总是查出来)

         例3: db.stu.find({},{gender:1, _id:0})

                查询所有文档的gender属性,且不查询_id属性

          例4: db.stu.find({gender:’male’},{name:1,_id:0});

                 查询所有gender属性值为male的文档中的name属性

查询表达式:

1: 最简单的查询表达式

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

2: $nq --- != 查询表达式

             {field:{$nq: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结构的对象,然后比较对象的属性是否满足表达式,速度较慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值