mongodb命令

来源:互联网 发布:淘宝情侣店铺推荐 编辑:程序博客网 时间:2024/05/29 21:16

mongodb常用操作

use 命令 该命令创建数据库,若已存在将返回现有的数据库.

语法:use database_name

eg: use my_db

注:执行该命令,数据库并没有创建成功,需向数据库中创建集合,

集合创建成功同时数据库创建成功.

 

show命令

语法:show dbs 查看所有的数据库.

Eg:show dbs

 

dropDatabase()命令 删除数据库

语法: db.dropDatabase()

注:db 指当前进行操作的数据库.

 

createCollection()命令 创建集合

语法:db.createCollection(name,options)

参数:name 创建的集合名称

    options:可选,指定有关内存大小和索引选项

eg:db.createCollection(“books”);

注:在mongo命令,执行db.books.insert({文档}) 可以直接创建集合和文档

  

show collections命令 查看数据库下已有的集合

 

insert()方法插入文档到集合

语法:db.集合名.insert({文档})

Eg:db.books.insert(

{

 name:”mongodb”,

 class:” 08”,

server:” php”,

title:” 非关系型数据库”,

age:8

})

注: 1、插入数组db.books.insert({country:[“上海”,”北京”,”深圳”]})

   2、插入数组嵌套对象db.books.insert({country:[{drive:”深圳驾照”,time:”12-8”},{ drive:”上海驾照”,time:”12-10”},{ drive:”北京驾照”,time:”11-8”}]})

3、插入嵌套对象:db.books.insert({city:{email:”230000”,address:”上海”}})

   4、文档中值可以是对象、数组、一些嵌套组合.键是符合mongodb规范字符串.

   5、文档可以看做独立存在,彼此之前没有任何联系.

 

find() 查询集合数据

语法:db.集合名.find({查询条件}).pretty()格式化显示文档

     db.集合名.findOne({查询条件}).pretty()只返回查询到的第一条文档.

Eg:db.books.find({sex:”m”}).pretty() 查询性别是m所有文档.

注:mongodb比较操作符

  $all

   语法{key:{$all:[ “value1”,”value2”,”value3”…..]}}

   key:文档中的键名 value匹配的值

   含义:匹配键key,并且该文档的键包含指定条件下所有value的文档.

   Eg:db.books.find({songs:{$all:[“半斤八两”]}})

     db.books.find({country:{$all:[“上海”]}}) 等同于db.books.find({country:”上海”})

   注:1、匹配值value是完整的值,若是$all:[“半斤”]是查询不到的.

     2、匹配的文档的键必须包含所有的value.

3、常用于匹配数组键.value必须被[]包含.

 

   $gt

   语法:{key:{$gt:value}}

   含义:匹配的键值大于指定值的所有文档

   Eg:db.books.find({age:{$gt:30}}).pretty()   age键值大于30的文档

 

  $gte

   语法:{key:{$gte:value}}

   含义:匹配键值不小于指定值value的所有文档.

   Eg:db.books.find({age:{$gte:30}})   age键值不小于(大于等于)30的文档

 

  

  $It

   语法:{key:{$lt:value}}

   含义:匹配的键值小于指定值value的所有文档

  Eg:db.books.find({age:{$lt:30}}).pretty()  age键值小于30的文档

 

  $lte

   语法:{key:{$lte:value}}

   含义:匹配的键值不大于指定值value的所有的文档.

Eg:db.books.find({age:{$lte:30}})  age键值不大于(小于等于)30的文档

 

$in

语法:{key:{$in:[value1,value2,value3…..]}}

含义:匹配的键值等于指定数组中任意一个value值的文档

Eg:db.books.find({songs:{$in:[“天使翅膀”,”一首歌”]}})  songs键值匹配任意一个value的文档.

注:只要键值有一个匹配value,就符合该查询条件.

 

$nin

语法:{key:{$nin:[“value1”,”value2”…..]}}

含义:匹配的键值不等于或不存在指定数组中的任意value值的文档

Eg:db.books.find({songs:{$nin:[“天使翅膀”]}}) 匹配的键值没有跟任意一个value值或没有匹配的文档.

注:若文档中无法匹配,则返回集合所有文档数据

 

 

$ne

语法:{key:{$ne:value}}

含义:匹配的键值不等于指定值value的文档.

Eg:db.books.find({age:{$ne:30}}) 匹配的age键值不等于30的文档

  db.books.find({country:{$ne:”shanghai”}})

 

$and

语法:{$and:[{表达式},{表达式}……]}

含义:指定一个至少包含两个表达式的数组,选择出满足该数组中所有表达式的文档

     若第一个表达式的值为”false”,余下表达式将不会执行.

Eg:db.books.find({$and:[{name:”you”},{age:{$gt:30}}).pretty()查找name是you,age大于30的文档.

 

$nor

语法:{$nor:[{表达式},{表达式}……]}

     含义:指定至少包含两个表达式的数组,选择出都不满足该数组中所有表达式的文档.

     Eg:db.books.find({$nor:[{name:”you”},{name:”mine”},{age:{$lt:30}}]})

       除name是you、mine和age小于30的所有文档.

注:若文档中无法匹配,则返回集合所有文档数据

 

$not

语法:{key:{$not:{表达式}}}

含义:选择出不能匹配表达式的文档,包括没有指定键的文档.

Eg:db.books.find({age:{$not:{$lt:30}}}).pretty()  查询出age不是小于30的所有文档.

注:若文档中无法匹配,则返回集合所有文档数据

 

$or

语法:{$or:[{表达式},{表达式}……]}

     含义:指定一个至少包含两个表达式的数组,选择出至少满足数组中一条表达式的文档

     Eg:db.books.find({$or:[{name:”you”},{age:{$lt:30}}]}).pretty()

     查询name是you或者age小于30的所有文档.

 

$exists

语法:{$key:{$exists:<boolean>}}

     含义:如果$exists的值为true,选择存在该字段的文档.若值为false,表示该文档不包含该字段.

     Eg:db.books.find({country:{$exists:false}}).pretty()

        查询集合books中没有country键的文档.

    注:若country字段键值为null,表示该键存在.

 

     $mod

     语法:{key:{$mod:[divisor,remainder]}}

     含义:匹配字段值,对divisor取摸,值等于remainder的文档

 

     $type

     语法:{key:{$type: 编号}}

     

      Eg:db.books.find(songs:{$type:4})

         db.books.find({$where:”Array.isArray(this.songs)”})

         键songs是数组的所有文档

 

      $regex

      语法{key:{$regex:’正则表达式’,$options:’i’}}

      含义:$regex操作符查询可以对字符串的执行的正则匹配

          $options:选项标志

     

      Eg:db.books.find({name:{$regex:’.t’,$options:’i’}}).pretty()

update() 方法

语法:db.集合名.update({选择条件},{数据修改},boolean,boolean)

第一个boolean值:若不存在的更新文档,是否插入修改文档,true插入,默认为false

第二个boolean值:若查询到文档,默认false只更新一条文档.若为true,所有文档全部更新.

Eg:db.books.update({name:” mongodb”},{$set:{age:22}})

     操作符

    $inc

     语法:{$inc:{key:value}}

     含义:key键值增加value

      Eg:db.books.update({name:”branyt”},{$inc:{age:6}},false,false)查询name为branyt文档,并更新文档中键age的值添加6

   

     $set

     语法:{$set:{key:value}}

     含义:把键key的值设置成value

      Eg:db.books.update({name:”branyt”},{$set:{age:20}},false,false)

 

     $unset

     语法:{$unset:{key:1}}

     含义:删除键key的值, 1代表删除

     Eg:db.books.update({name:”branyt”},{$unset:{age:1}},false,false)

 

     $push

     语法:{$push:{key:value}}

     含义:把value值添加到数组key中,如果该数组key不存在,则自动创建该数组

     Eg:db.books.update({name:”branyt”},{$push:{songs:”nbaaa”}},false,false)

 

    $pushAll

     语法:{$pushAll:{key:[value1,value2……]}}

     含义:添加多个value值到键key数组中.value可重复添加

     Eg:db.books.update({name:”branyt”},{$pushAll:{songs:[“a”,”b”]}},false,false)

 

    $addToSet

     语法:{$addToSet:{key:value}}

     含义:添加value到键key数组中,只有value值不存在,才会添加

     Eg:db.books.update({name:”branyt”},{$addToSet:{songs:”sssaaa”}},false,false)

    

    $pop

     语法:{$pop:{key:value}}

     含义:删除数组键key中的值,若value为-1删除最后一个值,若value值为1删除第一个值.

      Eg:db.books.update({name:”branyt”},{$pop:{songs:-1}},false,false)

 

     $pull

     语法:{$pull:{key:value}}

     含义:从数组键key中删除等于value的值

     Eg:db.books.update({name:”branyt”},{$pull:{songs:”sssaaa”}},false,false)

 

     $pullAll

     语法:{$pullAll:{key: value_array } }

     含义:从数组键key中删除value_array中相同的值

     Eg:db.books.update({name:”branyt”},{$pullAll:{songs:[“ac”,”bc”]}},false,false)

        

     $rename

     语法:{$rename:{old_key:new_key}}

     含义:更换键名.原来键值会剪切到新的键名中

     Eg:db.books.update({name:”branyt”},{$rename:{age:”newage”}},false,false)

 

remove()方法从集合中删除文档

语法:db.集合名.remove({删除条件}) 

Eg:db.books.remove({name:”mogodb”})

0 0