04-MongoDB数据操作(增删改查)

04-MongoDB数据操作(增删改查)


插入

插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId

语法: db.集合名词.insert(document)

> db.stu.insert({name :"EricChen",age : 23})
WriteResult({ "nInserted" : 1 })
> db.stu.find()
{ "_id" : ObjectId("5a98f8ddf4a43a13865dc78b"), "name" : "EricChen", "age" : 23 }

也可以使用_id插入

> s1 = {_id :'20160101',name:"Jack"}
{ "_id" : "20160101", "name" : "Jack" }
> s1.gender = 0
0
> db.stu.insert(s1)
WriteResult({ "nInserted" : 1 })
> db.stu.find()
{ "_id" : ObjectId("5a98f8ddf4a43a13865dc78b"), "name" : "EricChen", "age" : 23 }
{ "_id" : "20160101", "name" : "Jack", "gender" : 0 }

更新

语法:

> db.集合名.update(
    <query>,
    <update>,
    {multi:<boolean>}
)
  1. 参数query:查询条件,类似于sql语句update中的where部分
  2. 参数update:更新操作符,类似sql语句update中set部分
  3. 参数multi:可选,默认是false,标识值更新找到的第一条记录,值为true表示吧满足条件的文档全部更新

看一个例子:

> db.stu.find()
{ "_id" : ObjectId("5a98f8ddf4a43a13865dc78b"), "name" : "EricChen", "age" : 23 }
{ "_id" : "20160101", "name" : "Jack", "gender" : 0 }

//修改_id为20160101的文档
> db.stu.update({_id :"20160101"},{name :"JackMa"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.stu.find()
{ "_id" : ObjectId("5a98f8ddf4a43a13865dc78b"), "name" : "EricChen", "age" : 23 }
{ "_id" : "20160101", "name" : "JackMa" }

修改指定的属性:

> db.stu.update({name : "Rose"} ,{$set : {name : "Rps"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("5a98f8ddf4a43a13865dc78b"), "name" : "Rps" }
{ "_id" : "20160101", "name" : "JackMa" }
{ "_id" : ObjectId("5a98fd85f4a43a13865dc78c"), "name" : "hr", "gender" : 0 }

修改多条匹配到的数据:

> db.stu.find()
{ "_id" : ObjectId("5a98f8ddf4a43a13865dc78b"), "name" : "Rps" }
{ "_id" : "20160101", "name" : "JackMa" }
{ "_id" : ObjectId("5a98fd85f4a43a13865dc78c"), "name" : "hr", "gender" : 0 }
> db.stu.update({},{$set:{gender:0}},{multi : true})
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 2 })
> db.stu.find()
{ "_id" : ObjectId("5a98f8ddf4a43a13865dc78b"), "name" : "Rps", "gender" : 0 }
{ "_id" : "20160101", "name" : "JackMa", "gender" : 0 }
{ "_id" : ObjectId("5a98fd85f4a43a13865dc78c"), "name" : "hr", "gender" : 0 }

保存

如果文档的id已经存在则修改,如果文档的id不存在则添加

db.stu.save({_id: '20160101','name':'wyk'})

删除

db.stu.remove(
    <query>,
    {
        justOne:<boolean>
    }
)
  1. 参数query:可选,删除的文档的条件
  2. 参数justOne:可选,如果设为true或1.则值删除一条,默认false,标识删除多条

    db.stu.remove({gender :0},{justOne:true})

全部删除

db.stu.remove({})

创建集合

创建一个集合,size属性标识归并集合的最大限制,当数据量很大的时候,覆盖掉旧数据:

创建一个大小为5的集合

db.createCollection('sub',{capped:true,size : 5})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值