mongoDB学习笔记1

来源:互联网 发布:中医体质软件 编辑:程序博客网 时间:2024/06/05 21:01

安装mongoDB

解压mongodb-linux-x86_64-ubuntu1404-3.2.10.tgz,编辑/etc/profile

添加

export MONGODB_HOME=/home/hadoop/javaweb/mongodb-3.2.10
export PATH=$JAVA_HOME/bin:$PATH:$MONGODB_HOME/bin

基本概念:

文档: 键值对的有序集

例如 {"greeting" : "hello world"}称为一个文档,区分大小写和类型,键值不可以重复。

集合: 一组文档称为集合

数据库:多个集合组成数据库


1. 启动与连接mongoDB

shell下运行 mongod启动mongodb服务器,默认监听端口28017

shell下运行mongo,打开客户端连接mongodb server

db,查看当前db指向哪个数据库

use xxx,切换到xxx数据库


2. 基本CRUD操作

插入 insert

db.blog.insert(post)

查询 find

db.blog.find() ,db.blog.findOne()

更新update

db.blog.update({"key":"key value"}, post)

删除remove

db.blog.remove({"key":"key value"})


3. MongoDB基本数据类型

键都是String类型

键值类型如下:

null 用户表达空值或者不存在的字段,

例如 {"x",null}

布尔型 true / false

例如 {"x",true}

数值 shell默认使用64位浮点数数值

例如  {x: 3.14}  {y:3}

字符串 UTF-8字符串

例如 { x : "abc String"}

正则表达式

例如 {"x":/foobar/i}

数组

例如 {"x":["a","b","c"]}

日期

例如:  {"x": new Date()}

内嵌文档

例如 {"x":{"y":"String value"}}

对象id,一个12字节的ID,是文档的唯一标示

例如 {"x": ObjectId()}

二进制数据

代码

例如 {"x":function() { /*   xxx */} }


4 插入并保存文档

插入单个文档

db.blog.insert({"title":"mongodb study"})

批量插入

,db.blog.insert([ {"aaa":"111"}, {"bbb":"222"},{"ccc":"333"}])  //batchInsert已废弃,统一改用insert,参数是一个文档数组 [ { ...}, {...} , {...} ]

插入校验

如果插入文档不包含"_id"字段,则会自动增加此字段。 插入文档最大支持16M

删除文档(永久,不可撤销)

db.foo.remove()  //删除foo集合下所有文档

remove可以接受一个文档作为查询条件

db.foo.remove({"_id":111})

db.foo.drop() //删除整个集合,推荐使用

更新文档

db.foo.update({...},{...})   //第一个文档为查询条件,第二个文档为更新内容

修改器

$set修改器:用来指定一个字段的值,如果此字段不存在,则创建它

增加/修改一个字段

db.test.update({"xxx":"yyy"} , {"$set " : { "field" : "fieldvalue"}} )  //查看字段field是否存在,不存在,创建并更新,如果已存在,则更新之

"$unset"将一个键完全删除

db.test.update( {"xxx" : "yyy"} , {"$unset" : {"field" : 1} } )   //将field键完全删除

$inc 修改器用来增加已有键的值,不存在就创建一个;只能用于整形,长整型或者双精度浮点数型的值,不能使用字符串,数组或其它非数字的值

$push 向已有的数组末尾加入一个元素,要是没有就创建一个新的数组

$each 子操作符可以通过一次$push操作添加多个值

$pull  从数组中删除元素











  

0 0