MongoDB 命令备忘


启动mongo服务
mongod
登录mongo
mongo

列出数据库
show dbs

链接数据库(创建)
use dbname

删除所在数据库
db.dropDatabase()

创建名为collection1的集合
db.createCollection("collection1")

删除collection1
db.collection1.drop()

向collection1中插入文档{name:"xp"},若collection1不存在则创建collection1
db.collection1.insert({"name":"xp"})

列出所有collections
show collections

查看集合名为collection1的集合
db.collection1.find()
[.pretty()格式化]
[.limit(n)限制返回个数n]
[.sort({"age":-1})按age降序排序]


查询collection1中name=xp的文档
db.collection1.find({"name":"xp"})

查询collection1 但是解雇中不列出name属性
db.collection1.find({},{"name":0})

查询collection1中age值大于17的文档
db.collection1.find(
  { "age" :
    { $gt: 17}
  })

$gt:大于
$lt:小于
$gte:大于或等于
$lte:小于或等于

查询collection1中 prefer值包含ball(可用正则表达式匹配)的文档,且忽略大小写
db.collection1.find({
  prefer:
    {
      $regex:"ball",
      $options:"i"
    }
})

查询collection1中所有prefer包含ball的文档
db.collection1.find({"prefer":/ball/})

查询collection1中prefer包含ball,并且gender=girl的文档
db.collection1.find({
  "prefer":/ball/,
  "gender":"girl"
})

查询collection1中name=lily或name=lucy的文档
db.collection1.find({
  $or:[
    {"name":"lily"},
    {"name":"lucy"}
  ]
})

查询collection1中文档个数 (可以用条件过滤)
db.collection1.count()

查询每个学校的人数,并按人数降序排序
db.message.aggregate(
[
  {$group:
    {
      _id:"$school",
      num:{$sum:1}
    }
  },
  {$sort:
    {
      num:-1
    }
  }
])

删除collection1中的文档 (可以用条件过滤)
db.collection1.remove()

向collection1中插入文档{name:"xp"},若collection1不存在则创建collection1
db.collection1.insert({"name":"xp"})

更新name=xiaoming的文档,使gender=male、prefer=basketball
db.collection1.update(
  {name:"xiaoming"},
  {$set:
    {
      gender:"male",
      prefer:"footBall"
    }
  })

替换现有的id=sfsfse35的文档
db.collection1.save({id:"sfsfse35",name:"nobody",home:"here"})



聚合查询

表达式            描述                实例
$sum 总结从集合中的所有文件所定义的值. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])
$avg 从所有文档集合中所有给定值计算的平均. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])
$min 获取集合中的所有文件中的相应值最小. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])
$max 获取集合中的所有文件中的相应值的最大. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])
$push 值插入到一个数组生成文档中. db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])
$addToSet 值插入到一个数组中所得到的文档,但不会创建重复. db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])
$first 根据分组从源文档中获取的第一个文档。通常情况下,这才有意义,连同以前的一些应用 “$sort”-stage. db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])
$last 根据分组从源文档中获取最后的文档。通常,这才有意义,连同以前的一些应用 “$sort”-stage. db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])


你可能感兴趣的:(mongodb)