MongoDB数据库基本语句

通过shell连接

1.连接数据库 ./mongo
2.创建数据库 (如果数据库不存在,则创建数据库,否则切换到指定数据库。)

> use rain
switched to db rain
> db
rain
>

3.查询所有数据库

> show dbs
admin 0.000GB
local 0.000GB
rain 0.000GB
>

4.删除数据库

//切换数据库
> use rain
switched to db rain
//执行删除命令
> db.dropDatabase()
{ "dropped" : "rain", "ok" : 1 }
//验证是否删除成功
> show dbs
admin 0.000GB
local 0.000GB
>

5.删除集合

> use rain
switched to db rain
> show tables
col
dongaotest
rain
> db.col.drop()
true
>

6.插入数据

//给集合test插入数据,若该集合不在该数据库中, MongoDB 会自动创建该集合
> db.test.insert({title:'测试',descript:'测试插入数据',author:'rain'})
WriteResult({ "nInserted" : 1 })
> show tables
dongaotest
rain
test
//test 为新增的
//查看已插入的文档
> db.test.find().pretty()
{
"_id" : ObjectId("59b83e5437ced1ba21580d15"),
"title" : "测试",
"descript" : "测试插入数据",
"author" : "rain"
}
>
//也可以将数据定义为变量插入
> document=({"title":'测试变量插入',"descript":'还是测试',"tags":['test','test insert','mongodb'],"author":'rain'})
{
"title" : "测试变量插入",
"descript" : "还是测试",
"tags" : [
"test",
"test insert",
"mongodb"
],
"author" : "rain"
}
> db.test.insert(document)
WriteResult({ "nInserted" : 1 })
>

7.更新文档

db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如,<script type="math/tex" id="MathJax-Element-7">,</script>inc…)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是 false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。
> db.test.update({'title':'测试'},{$set:{'title':'MongoDB 测试'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
  • 只更新第一条记录:
    db.col.update( { “count” : { $gt : 1 } } , { $set : { “test2” : “OK”} } );
  • 全部更新:
    db.col.update( { “count” : { $gt : 3 } } , { $set : { “test2” : “OK”} },false,true );
  • 只添加第一条:
    db.col.update( { “count” : { $gt : 4 } } , { $set : { “test5” : “OK”} },true,false );
  • 全部添加加进去:
    db.col.update( { “count” : { $gt : 5 } } , { $set : { “test5” : “OK”} },true,true );
  • 全部更新:
    db.col.update( { “count” : { $gt : 15 } } , { $inc : { “count” : 1} },false,true );
  • 只更新第一条记录:
    db.col.update( { “count” : {$gt : 10 } } , { $inc : { “count” : 1} },false,false );
db.test.save(
<document>,
{
writeConcern: <document>
}
)

参数说明:

  • document : 文档数据。
  • writeConcern :可选,抛出异常的级别。

8.删除文档

db.test.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档。
  • writeConcern :(可选)抛出异常的级别。
> db.test.remove({"title":'MongoDB 测试'})
WriteResult({ "nRemoved" : 1 }) //删除一条数据
//删除所有
>db.test.remove({})

9.查询数据

db.test.find(query, projection)
  • query :可选,使用查询操作符指定查询条件
  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

MongoDB 与 RDBMS Where 语句比较

操作

格式

范例

RDBMS中的类似语句

等于

{< key>:< value>}

db.test.find({“by”:”菜鸟教程”}).pretty()

where by = ‘菜鸟教程’

小于

{< key>:{$lt:< value>}}

db.test.find({“likes”:{$lt:50}}).pretty()

where likes < 50

小于或等于

{< key>:{$lte:< value>}}

db.test.find({“likes”:{$lte:50}}).pretty()

where likes <= 50

大于

{< key>:{$gt:< value>}}

db.test.find({“likes”:{$gt:50}}).pretty()

where likes > 50

大于或等于

{< key>:{$gte:< value>}}

db.test.find({“likes”:{$gte:50}}).pretty()

where likes >= 50

不等于

{< key>:{$ne:< value>}}

db.test.find({“likes”:{$ne:50}}).pretty()

where likes != 50

MongoDB AND 条件

>db.test.find({key1:value1, key2:value2}).pretty()

MongoDB OR 条件

>db.test.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()

参考网址
1.​​​http://www.runoob.com/mongodb/mongodb-operators.html​