Mongodb命令

一、数据库 – 表

  1. 创建数据库 mydb
  use mydb

use mydb也是切换数据库命令。

  1. 删除数据库
db.dropDatabase()

这将删除选定的数据库。如果还没有选择任何数据库,然后它会删除默认的 test 数据库。

  1. 检查列表数据库通过使用命令 show dbs
>show dbs
local        0.000GB
mydb         0.044GB
test         0.000GB
  1. mongodb中没有表的概念,是collection,类似关系数据库中的表
    show collections:显示当前数据库中的集合
> show collections
articles
jianshuusers

(也可以使用show tables)

5)创建数据库中的集合(表)
db.createCollection(name, options)

> db.createCollection('mycollection')
{ "ok" : 1 }
> show collections
articles
jianshuusers
mycollection
> 

在MongoDB中,不需要创建集合。当插入一些文件 MongoDB 自动创建的集合。

> db.mytb.insert({"name":"Tomson"})
WriteResult({ "nInserted" : 1 })
> show collections
articles
jianshuusers
mytb
> 
  1. 删除数据库中的集合(表)
    db.COLLECTION_NAME.drop()
> db.articles.drop()
true

注意:删除时没有确认

二、查询

1)查询所有记录

db.articles.find()

相当于:select* from articles;

默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。注意:键入it命令不能带“;”

但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize= 50;这样每页就显示50条记录了。

2)集合(表)的结构
mongodb是没查询集合结构(schema)的,直接用find查询数据就好了。

  1. 查询去掉后的当前聚集集合中的某列的重复数据
db.articles.distinct("author");

会过滤掉name中的相同数据

相当于:select distict(author) from articles;

  1. 条件查询:
    查询likes > 1000的记录
 > db.jianshuusers.find({likes:{$gt:1000}})

相当于:select * from jianshuusers where likes >1000

小于(<): $lt
大于等于(>=):$gte
小于等于(<=):$lte

db.jianshuusers.find({"nickname": "纯银V"});

相当于:select * from jianshuusers where nickname ='纯银V'

模糊查询

db.jianshuusers.find({nickname: /mongo/})

相当于%%

select * from jianshuusers where nickname like ‘%mongo%’;

db.jianshuusers.find({nickname: /^mongo/})

相当于 select * from jianshuusers where nickname like ‘mongo%’;

5)查询指定列
查询指定列nickname、url数据

db.jianshuusers.find({}, {nickname: 1, url: 1})

相当于:select nickname, url from jianshuusers;

6)排序

升序:

db.jianshuusers.find().sort({likes: 1})

降序:

db.jianshuusers.find().sort({likes: -1})
  1. 查询某个结果集的记录条数
db.jianshuusers.find({likes: {$gte: 1000}}).count()

相当于:select count(*) from jianshuusers where likes >= 1000;

点赞