MongoDB基础

来源:互联网 发布:松下tda200中文软件 编辑:程序博客网 时间:2024/06/02 06:09

MongoDB 概念解析

Sql

mongoDB

解释说明

Database

Database

数据库

Table

Collection

数据库表/集合

Row

Document

数据记录行/文档

Column

Field

数据字段/

Index

Index

索引

Table joins

 

表链接,mongo不支持

Primary key

Primary key

主键,mongo 默认_id为主键

 

MongoDB 比较符

操作

格式

范例

Sql

等于

{‘key’:num}

Db.collection_name.find({‘key’:num})

Where key = num

小于

{‘key’:{$lt:num}}

Db.collection_name.find({‘key’:{$lt:num}})

Where key < num

小于或等于

{‘key’:{$lte:num}}

Db.collection_name.find({‘key’:{$lte:num}})

Where key <= num

大于

{‘key’:{$gt:num}}

Db.collection_name.find({‘key’:{$gt:num}})

Where key > num

小于或等于

{‘key’:{$gte:num}}

Db.collection_name.find({‘key’:{$gte:num}})

Where key >= num

不等于

{‘key’:{$ne:num}}

Db.collection_name.find({‘key’:{$ne:num}})

Where key != num

MongoDB and、or

#and

<query>:{‘key1’:’value’,’key2’:’value2’}

#or

<query>:$or:[{‘key1’:’value’},{’key2’:’value2’}]

#or+and

<query>:{‘key1’:’value’,’key2’:’value2’},$or:[{‘key3’:’value3’},{’key4’:’value4’}]

 

 

 

 

创建数据库

#创建数据库(进入数据库)

Use database_name

#查看所在数据库

Db

#添加数据,使数据库持久化

Db.database_name.insert({‘key’:’value’})

#显示所有数据库

Show dbs

 

Ps1:如果只创建没有数据,不会在所有数据显示。

 

 

删除数据库

#显示所有数据库

Show dbs

#进入数据库

Use database_name

#删除数据库

Db.dropDatabase()

 

删除集合

Db.collection.drop()

 

 

插入文档

#定义bean对象

Document=({

‘key’:’value’,

‘key2’:’value2’

})

#插入文档

Db.collection_name.insert(document)

 

Ps1:save()方法如果指定_id会更新指定_id的数据

 

#单独插入一条文档(3.2)

Var document = Db.collection_name.insertOne({‘key’:’value’})

#显示插入是否成功及id

document

 

#批量插入文档(3.2)

Var res = Db.collection_name.insertMany([{‘one’:1},{’tow’:2}])

#显示插入是否成功及数组的id

res

 

更新文档

Db.collection_name.update(

<query>,

<update>,

{

upsert:<boolean>,

multi:<boolean>,

writeConcern:<boolean>

}

)

query: update的查询条件,类似sql update查询内where后面的。

update: update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的

upsert: 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi: 可选,mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

writeConcern:可选,抛出异常的级别。

 

#只更新第一个匹配的文档

Db.collection_name.update({‘key’:’value’},{$set:{‘new_key’:’new_value’}},)

#更新所有匹配的文档

Db.collection_name.update({‘key’:’value’},{$set:{‘new_key’:’new_value’}},false,true)

#若无匹配数据则添加

Db.collection_name.update({‘key’: ’value’}{$set:{‘new_key’:’new_value’}},true,false)

#更新一条语句(3.2)

Db.collection_name.updateOne({‘key’:’value’}{$set:{‘new_key’:’new_value’}})

#更新多条语句(3.2)

Db.collection_name.updateMany({‘key’: ’value’}{$set:{‘new_key’:’new_value’}})

 

删除文档

Db.collection_name.remove(

<query>,

{

justOne:<boolean>,

writeConcern:<boolean>

}

)

 

justOne: (可选)如果设为 true1,则只删除一个文档。

 

#删除文档(过时)

Db.collection_name.remove({‘key’:’value’})

#删除集合内所有文档

Db.collection_name.deleteMany({})

#删除集合内所有匹配key:vlaue的文档

Db.collection_name.deleteMany({‘key’:’value’})

#删除集合内第一个匹配key:vlaue的文档

Db.collection_name.deleteOne({‘key’:’value’})

 

 

查询文档

Db.collection_name.find(<query>)

#查询所有文档

Db.collection_name.find()

#查询单个文档

Db.collection_name.findOne()

#美化文档

Db.collection_name.find().pertty()

 

 

$type操作符

类型

数字

备注

Double

1

数值类型

String

2

字符串类型

Object

3

对象类型

Array

4

数组类型

Binary data

5

二进制对象

Boolean

8

布尔

Date

9

日期

Null

10

 

 

Limit()方法和Skip()方法(分页)

#limitsql中的limit,限制查询数量

Db.collection_name.find().limit(1)

#skip方法表示跳过多少条数据

Db.collection_name.find().limit(1).skip(1) #跳过一条数据并且只读取一条数据

 

Sort()方法(排序)

#limitsql中的limit,限制查询数量

Db.collection_name.find().sort({‘key’:1})

Pa:1为升序,-1为降序。

 

索引

ensureIndex()方法

Db.collection_name.ensureIndex({‘key’:1})

 

参数

类型

描述

Background

Boolean

是否阻塞数据库创建索引(false)

Unique

Boolean

是否唯一索引(false)

Name

String

索引名称

dropDups

Boolean

是否删除重复

Sparse

Boolean

是否有空数据索引

Weights

Document

权重 1-999

 

聚合

aggregate()方法

Db.collection_name.aggregate(aggregate_type)

 

表达式

描述

实例

$sun

计算总和

Db.collection_name.aggregate($group:{_id:null,count:{$sum:1}})

$avg

计算平均值

Db.collection_name.aggregate($group:{_id:null,avg:{$avg:’key’}})

$min

计算最小值

 

$max

计算最大值

 

$push

结果变数组

 

$addToSet

 

 

$first

获取第一个文档

 

$last

获取最后一个文档

 

 

复制

暂时不用

 

分片

暂时不用

 

 

备份

暂时不用

 

 

原创粉丝点击