mongodb的简单操作
来源:互联网 发布:sql和mysql的区别 编辑:程序博客网 时间:2024/06/06 05:20
使用mongodb也有一段时间了,有过其他数据库使用经验的人会发现mongodb上手很简单。个人觉得需要注意的,是关于mongodb的一些修改器的使用。
为了操作演示,先来建立一个数据表
> db.contact.insert({"phone":[{"number":"12345678912","place":"chengdu"},{"number":"12345678913","place":"chengdu"}],"createtime":1440075592})
查看数据表
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678912", "place" : "chengdu" }, { "number" : "12345678913", "place" : "chengdu" } ], "createtime" : 1440075592 }
此时开始我们的修改器操作:
1、$inc
修改器 $inc 可以对数据表中摸个为数字型的键进行增减的操作。
> db.contact.update({"createtime":1440075592},{"$inc":{"createtime":1}})查看数据表
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678912", "place" : "chengdu" }, { "number" : "12345678913", "place" : "chengdu" } ], "createtime" : 1440075593}可见,createtime 键值增加 1.当然,要减去的话只需要把1换为负数即可。
2、$set
$set 用来指定一个键并更新键值,如果指定的键不存在,则会创建该键。
> db.contact.update({"createtime":1440075593},{"$set":{"createtime":1}})查看数据表
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678912", "place" : "chengdu" }, { "number" : "12345678913", "place" : "chengdu" } ], "createtime" : 1}可见,createtime 键值设置为 1。
再指定一个不存在的键值
> db.contact.update({"createtime":1},{"$set":{"updatetime":1}})查看数据表
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678912", "place" : "chengdu" }, { "number" : "12345678913", "place" : "chengdu" } ], "createtime" : 1, "updatetime" : 1 }增加了 “updatetime”键,并设置键值为1.
3、$unset
$unset 用来删除指定的键
> db.contact.update({"createtime":1},{"$unset":{"updatetime":1}})查看数据表
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678912", "place" : "chengdu" }, { "number" : "12345678913", "place" : "chengdu" } ], "createtime" : 1 }删除了键 “updatetime”,此处对目标键使用任何具体的键值都可以删除该目标键。
4、$push
$push 向数据表中的某个数组类型的键添加一个数组元素,不过滤重复的数据。若键不存在,则创建数组类型的键。
> db.contact.update({"createtime":1},{"$push":{"phone":{"number":"12345678914","place":"chengdu"}}})查看数据表
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678912", "place" : "chengdu" }, { "number" : "12345678913", "place" : "chengdu" }, { "number" : "12345678914", "place" : "chengdu" } ], "createtime" : 1, }“phone”键中添加了一个数据项。
再指定一个不存在的类型为数组的键
> db.contact.update({"createtime":1},{"$push":{"email":"123456789@test.com"}})看看数据表
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678912", "place" : "chengdu" }, { "number" : "12345678913", "place" : "chengdu" }, { "number" : "12345678914", "place" : "chengdu" } ], "createtime" : 1, "email" : [ "123456789@test.com" ] }添加了“email”键,并设置了指定的键值。
5、$addToSet
$addToSet 类似 $push ,都是给数组类型键值添加一个元素时,但是 $addToSet 能够避免在数组中产生重复数据。
6、$pull
$pull 对数据表中的某个数组类型的键删除一个数组元素
> db.contact.update({"createtime":1},{"$pull":{"phone":{"number":"12345678914"}}})查看数据表
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678912", "place" : "chengdu" }, { "number" : "12345678913", "place" : "chengdu" } ], "createtime" : 1, "email" : [ "123456789@test.com" ] }可见,删除了指定的数据项
7、$pop
$pop 跟 $pull 都是数组修改器,但是 $pop 只是从数组的头或者尾删除数组中的元素
先插入几个数据
> db.contact.update({"createtime":1},{"$push":{"phone":{"number":"12345678914","place":"chengdu"}}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.contact.update({"createtime":1},{"$push":{"phone":{"number":"12345678915","place":"chengdu"}}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.contact.update({"createtime":1},{"$push":{"phone":{"number":"12345678916","place":"chengdu"}}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.contact.update({"createtime":1},{"$push":{"phone":{"number":"12345678917","place":"chengdu"}}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })此时
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678912", "place" : "chengdu" }, { "number" : "12345678913", "place" : "chengdu" }, { "number" : "12345678914", "place" : "chengdu" }, { "number" : "12345678915", "place" : "chengdu" }, { "number" : "12345678916", "place" : "chengdu" }, { "number" : "12345678917", "place" : "chengdu" } ], "createtime" : 1, "email" : [ "123456789@test.com" ] }执行
> db.contact.update({"createtime":1},{"$pop":{"phone":-1}})得到
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678913", "place" : "chengdu" }, { "number" : "12345678914", "place" : "chengdu" }, { "number" : "12345678915", "place" : "chengdu" }, { "number" : "12345678916", "place" : "chengdu" }, { "number" : "12345678917", "place" : "chengdu" } ], "createtime" : 1, "email" : [ "123456789@test.com" ] }操作结果,从头部删除了数据项
再次执行
> db.contact.update({"createtime":1},{"$pop":{"phone":1}})得到
> db.contact.find(){ "_id" : ObjectId("55dac281081c67f0a7549fee"), "phone" : [ { "number" : "12345678913", "place" : "chengdu" }, { "number" : "12345678914", "place" : "chengdu" }, { "number" : "12345678915", "place" : "chengdu" }, { "number" : "12345678916", "place" : "chengdu" } ], "createtime" : 1, "email" : [ "123456789@test.com" ] }操作结果,从尾部删除了数据项
其实,“phone”对应键值为正数则从尾部删除,为负数则从头部删除
0 0
- MongoDB的简单操作
- mongodb的简单操作
- MongoDB的简单操作
- Mongodb的简单操作
- mongodb的简单操作
- MongoDB的简单操作
- mongodb集合的简单操作
- mongodb的一些简单操作
- mongodb的一些简单的操作
- Python对Mongodb的一些简单操作
- 一个简单的MongoDB操作类
- rockmongo管理mongodb的一些简单操作
- Mongodb安装及简单的CURD操作
- java操作mongoDB数据库的简单实例
- MongoDB的一些简单CRUD操作
- mongodb数据库的一些简单操作
- mongodb的CURD操作简单整理
- python 中MongoDB的简单操作
- [LeedCode OJ]#70 Climbing Stairs
- uva 3713 Astronauts (2-sat)
- c++ 内存分配
- SharedPreferences的使用
- Android的消息循环——线程间通信
- mongodb的简单操作
- 时间,你好!
- 黑马程序员-[OC]学习之旅-NSFileManager、NSNumber、NSDate
- 【more effective c++读书笔记】【第1章】基础议题(1)
- CentOS_Linux搭建ftp服务器详细教程
- C51的中断号排序规则
- Android 背景模糊
- win+ubuntu双系统安装后无法进入win7解决方法
- 从视频文件提取音频并存储为MP3格式文件