mongodb 基本操作

1.连接mongodb 
mongo/bin目录下执行 
./mongo 或者全局直接 mongo

2.查看有哪些数据库
show dbs

3.查看当前所在数据库 
db

4.创建数据库,后面跟名字 
use hello (临时创建 如果不做操作 则离开后被系统删除)

5.在当前数据库删除当前数据库 
db.dropDatabase()

6.查看当前库的所有用户 
show users

7.查看集合(或者叫表) 
show collections

8.创建集合 
db.createCollection("access_log")

9.创建集合并制定集合的属性 
db.createCollection("access_log", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )

字段 类型 描述
capped Boolean (可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。
autoIndexID Boolean (可选)如果为true,自动创建索引_id字段的默认值是false。
size number (可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。
max number (可选)指定封顶集合允许在文件的最大数量。
创建唯一索引:
第一层的:
db.phone_code.ensureIndex({"phone_num":1},{"unique":true})
db.phone_code.getIndexes()
多层深入的:
db.users.ensureIndex({"wechat_info.token_info.unionid":1},{"unique":true})
db.users.getIndexes()

10.另一种创建集合 
(当插入一条数据时,不存在mongodb会帮我们创建,和创建数据库同理) 
db.test.insert({"name" : "adamanter"})

11.删除当前库的一个集合 
db.test.drop() 删除用户表或者用户集合

12.插入一条数据 
db.test.insert({"_id":"3","title":"mongotest","description":"this is test"}) 
注意:插入的都是JSON形式的,所以一定要用{},否则会报错: 
Sat Mar 19 14:22:39.160 SyntaxError: Unexpected token :

13.插入一条_id存在的数据会插入报错说重复ID
db.test.insert({"_id":"3","title":"hello adamanter"}) 
输出:E11000 duplicate key error index: openfire.MyFirstCollection.$_id_ dup key: { : “3” } 
解释:_id即是mongodb的默认主键,默认自动生成,我们可以直接设置以达到我们想要的目的

问:插入一条和原来集合完全不一样的数据可以吗?
答:可以,所以我们要在程序中规避,手动指定我们一个集合里面的字段,否则就无法实现查询及其他功能了
> db.test.insert({"newTitle":"null"})
> db.test.find();
{ "_id" : "3", "title" : "new title", "description" : "this is test" }
{ "_id" : ObjectId("56ecf4fe0dceecace97c4506"), "newTitle" : "null" }

14.查看集合第一条记录和所有记录
db.test.findOne(); 
输出:{ “_id” : ObjectId(“56ecde0662552d15c443dd4a”), “name” : “adamanter” }

db.test.find()

15.查找一条/多条特定数据 
db.test.findOne({"name":"adamanter"}) 
输出:{ “_id” : ObjectId(“56ecde0662552d15c443dd4a”), "name":"adamanter" }

16.更新一条记录 
db.test.update({"title":"mongotest"},{$set:{"title":"new title"}},true,false) 
结果: 
db.test.findOne() 
{ “_id” : “3”, “title” : “new title”, “description” : “this is test” }

update详解

db.collection.update(criteria,objNew,upsert,multi)criteria:查询条件
objNew:update对象和一些更新操作符
upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入。
multi:默认是false,只更新找到的第一条记录。如果为true,把按条件查询出来的记录全部更新。更新操作符:
1.$inc
用法:{$inc:{field:value}}
作用:对一个数字字段的某个field增加value
示例:db.students.update({name:"student"},{$inc:{age:5}})  2.$set
用法:{$set:{field:value}}
作用:把文档中某个字段field的值设为value
示例:db.students.update({name:"student"},{$set:{age:23}})3.$unset
用法:{$unset:{field:1}}
作用:删除某个字段field
示例: db.students.update({name:"student"},{$unset:{age:1}})4.$push
用法:{$push:{field:value}}
作用:把value追加到field里。注:field只能是数组类型,如果field不存在,会自动插入一个数组类型
示例:db.students.update({name:"student"},{$push:{"title":"major"}}5.$rename
用法:{$rename:{old_field_name:new_field_name}}
作用:对字段进行重命名(不是值,是字段)
示例:db.students.update({name:"student"},{$rename:{"name":"newname"}}) 

mongdb拓展:

1.find()指定指定查询条件及其条件映射(查询的返回结果) 
作用:减少流量

如果key:value,返回的value是个非常大的JSON,而我们不需要这么多字段,也许我们只需要其中的一个.

那么使用projection来过滤: 
db.collection.find(query, projection) 此处projection就是返回值的过滤条件

参数 类型 描述
query 文档 可选. 使用查询操作符指定查询条件。
projection 文档 可选. 根据条件,使用投影操作符指定返回的键。查询时返回文档中所有键值,只需省略该参数即可(默认省略).

返回值: 匹配查询条件的文档集合的游标. 如果指定投影参数,查询出的文档返回指定的键 。

_id键也可以从集合中移除掉。 
_id不指定的话,总是会返回_id。
1或者true代表返回,0或者false代表不返回。

示例: 
db.test.findOne({“title”:”new title”},{“description”:1,”_id”:0}); 
{ “description” : “this is test” }

也可以使用表达式: 
db.test.findOne({“title”:”new title”},{Items:{“$slice”:[3,1]}});

db.test.findOne({"hello":"world"},{"_id":0});

{ "hello" : "world" }

转载于:https://www.cnblogs.com/adamans/articles/9111110.html

mongodb:linux基本操作相关推荐

  1. MongoDB的基本操作(创建数据库,数据表,查询数据表信息)

    今天,因为有朋友想要了解MongoDB的基本操作.所以,我就写一篇关于MongoDB的文章,占个坑以后有时间研究MongoDB再正式的写MongoDB的文章.关于MongoDB的安装,可以参考一下我的 ...

  2. Linux软件基础实验,linux基本操作的实验

    linux基本操作的实验 发布时间:2008-10-02 00:37:30来源:红联作者:sfwjeo 实验一.linux基本操作 1.实验目的 了解linux的基本命令,熟练掌握其基本操作 2.相关 ...

  3. 复习Linux基本操作----常见指令

    Linux基本操作 ls命令 ls(list):相当于windows上的文件资源管理器 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件.对于文件,将列出文件 ...

  4. [ mongoDB ] - mongoDB的基本操作

    mongoDB的基本操作 强烈推荐参考官方用户手册: http://www.mongodb.org/display/DOCS   1)插入(insert) 插入的value是json对象,以下示例循环 ...

  5. [MongoDB] MongoDB的基本操作以及文档的增删改查

    参考视频 链接:https://pan.baidu.com/s/1tAWPEC8yppyrPupkUFdCWQ 提取码:gdn8 MongoDB的基本操作 基本概念 生活中:仓库.架子.物品 计算机: ...

  6. MongoDB 学习-MongoDB 的基本操作(二)

    1 MongoDB 的简介 MongoDB 是由C++编写的NOSQL 非关系型数据库,是非关系型数据库中最像关系型数据库的NoSQL 数据库. 2 MongoDB 和 关系型数据库对比 MongoD ...

  7. 孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2

    孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第九天. 今天继续学习mongoDB的简单操作, ...

  8. 操作系统实验一linux,操作系统实验一 Linux基本操作.doc

    操作系统实验一 Linux基本操作 实验.实验目的Red hat Linux平台. 三.实验原理及相关知识 1. 参阅相关Linux操作系统的安装手册,熟悉Linux的基本安装和配置: 2. 参阅相关 ...

  9. Linux基本操作1

    Linux基本操作1 注意: 以下所用 Linux 版本为 CentOS 6.8 1.关机.重启.注销 shutdown 指令 (1) shutdown -h now 表示立即关机 (2) shutd ...

最新文章

  1. 面试官一个线程池问题把我问懵逼了。
  2. Maven系列学习(二)Maven使用入门
  3. python怎么画波浪_python 实现波浪滤镜特效
  4. Freemarker 页面静态化技术使用入门案例
  5. 设计模式到底离我们有多远
  6. 养蛙游戏刷爆朋友圈,养蛙成功“反杀”传统手游?
  7. 06-CABasicAnimation基础核心动画
  8. UIPopoverController简介
  9. ffmpeg.exe dos下怎么用 放在哪里
  10. matlab电机建模,Matlab系列之无刷电机matlab建模.ppt
  11. 在Vue.js中使用Mixin
  12. nice和renice命令详解
  13. 自适应模糊PID(位置式)C语言实现
  14. MD5加密——使用Java自带的MessageDigest工具类实现
  15. 计算机信息检索自考知识点,计算机信息检索02139自考资料.doc
  16. html5 播放器 github,GitHub - Little-girl-lily/player: html5版本音乐播放器,支持iOS设备...
  17. 如何在Mozilla Firefox中启用(或禁用)Cookie
  18. Time——信仰:梦在远方,路在脚下
  19. 接苹果游戏 小学生邀请赛T3
  20. 如何在体育场创造极致观看体验

热门文章

  1. SAP RETAIL WB02 为门店激活物料分类账报错 - ML currencies are not integrated in FI for valuation area m123 NMI1 –
  2. SAP MM PR 审批中的REJECT
  3. 制药行业SAP项目里的那些LIMS系统
  4. 喊了好久的AI落地究竟卡在哪里了?
  5. 当领导,核心是“抓住2点、做好5条”!做到了,员工根本不用管
  6. 阿里发布千亿参数规模AI模型,可设计30多种物品高清图像
  7. 造车行业百年未有变局之下,一个「老玩家」开始了自己的赶超
  8. AI发展格局正从“数据”演变为“知识”
  9. 如何才能信任你的深度学习代码?
  10. 思科将在网络中融入人工智能和机器学习