插入 insert

MongoDB中文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。

首先我们先选择数据库

> use NewsDB
switched to db NewsDB
>



下面我们先定义一个文档

> document = ({"name":"jingdong","age":"23","profession":"extreme programming","city":"sy"})
{
	"name" : "jingdong",
	"age" : "23",
	"profession" : "extreme programming",
	"city" : "sy"
}
>

之后我们进入今天的主题,向集合中插入文档,插入的方式有两种,一种是插入定义好的文档,另一种是插入未定义的数据。

> db.new.insert(document)
WriteResult({ "nInserted" : 1 })



> db.new.insert({
... "name" : "jingdong",
... "age" : "23",
... "profession" : "extreme programming",
... "city" : "sy"
... }
... )
WriteResult({ "nInserted" : 1 })



之后我们可以通过find函数来查看集合中的文档。

db.new.find()



删除 remove

MongoDB remove()函数是用来移除集合中的数据。

MongoDB数据更新可以使用update()函数。在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。

如果你想删除new集合中name为“jingdong”的数据,你就可以执行以下命令

> db.new.remove({"name":"jingdong"})
WriteResult({ "nRemoved" : 2 })

如果你想删除new集合所有的数据,你可以执行以下命令

db.new.remove({})

如果你想删除整个集合你需要使用drop函数,drop函数会返回true或者false。

db.new.drop()

使用dropDatabase()函数删除数据库,执行命令前最好使用db查看一下当前的数据库,确保你删除的数据库是正确的。

db.dropDatabase()



更新update

MongoDB数据更新可以使用update()函数。

db.collection.update( criteria, objNew, upsert, multi )

update()函数接受以下四个参数:

  • criteria : update的查询条件,类似sql update查询内where后面的。
  • objNew : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

下面写几个小例子吧,首先先插入两个测试数据。

> db.new.insert({ "name" : "jingdong", "age" : "23", "profession" : "extreme programming", "city" : "sy" } )
WriteResult({ "nInserted" : 1 })
> db.new.insert({ "name" : "nannan", "age" : "23", "profession" : "calc", "city" : "sy" } )
WriteResult({ "nInserted" : 1 })

只更新符合条件的第一条

> db.new.update({"city":"sy"},{$set:{"city":"bj"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })



全部更新

> db.new.update({"city":"sy"},{$set:{"city":"bj"}},false,true)



如果没有此属性则添加第一条中

> db.new.update({"city":"sy"},{$set:{"city":"bj"}},true,false)



如果没有此属性则全部都添加


> db.new.update({"city":"sy"},{$set:{"city":"bj"}},true,true)



查询find

可以使用find实现全部查询

> db.new.find()



也可以指定条件查询

> db.new.find({"name":"jingdong"})