目录

前言

基本概念

数据库

查看所有的数据库

连接到一个指定的数据库

删除数据库(慎用!!!)

集合

创建集合

查看集合

删除集合

文档

插入文档

更新文档

删除文档

查询文档

limit与skip方法

文档排序

 总结


前言

Mongodb是非常好用的NoSQL数据库,前篇详细介绍MongoDB的安装步骤,本篇通过思维导图的方式详细介绍MongoDB常用操作,助你更灵活的使用它。

java mongo根据Criteria多条件查询 mongodb查询多个集合_nosql

 

基本概念

在mongodb中基本的概念是文档、集合、数据库,下表帮助你更加容易理解Mongo中的一些概念:

SQL术语/概念

MongoDB术语/概念

解释/说明

database

database

数据库

table

collection

数据库表/集合

row

document

数据记录行/文档

column

field

数据字段/域

index

index

索引

table joins

表连接,MongoDB不支持

primary key

primary key

主键,MongoDB自动将_id字段设置为主键

java mongo根据Criteria多条件查询 mongodb查询多个集合_数据库_02

小贴士:一个mongodb实例可以创建多个数据库、一个数据库可以创建多个集合、一个集合可以包括多个文档。

数据库

一个mongodb中可以建立多个数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

找到mongodb bin目录,执行./mongo 进入

java mongo根据Criteria多条件查询 mongodb查询多个集合_nosql_03

查看所有的数据库

show dbs

连接到一个指定的数据库

use local

 小贴士:有test数据库则切换到此数据库,没有则创建。

java mongo根据Criteria多条件查询 mongodb查询多个集合_数据_04

删除数据库(慎用!!!)

db.dropDatabase()

小贴士:删除时,先要切换到对应的数据库,在执行删除。

数据库也通过名字来标识。在用UTF-8字符串命名时,要注意以下几点: 

(1)不能是空字符串("")。

(2)不得含有' '(空格)、.、$、/、\和\0 (空字符)。

(3)应全部小写。

(4)最多64字节。

集合

集合相当于关系数据库中的表,一个数据库可以创建多个集合,一个集合是将相同类型的文档管理起来。

创建集合

db.createCollection(name, options)


 以下实例创建collection1集合

> use test 
 switched to db test
 > db.createCollection("collection1")
 { "ok" : 1 }

参数说明:

name: 要创建的集合名称

options: 可选参数, 指定有关内存大小及索引的选项,参数如下: 

字段

描述

capped

布尔

(可选)如果为 true ,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必 须指定 size 参数。

autoIndexId

布尔

(可选)如为 true ,自动在 _id 字段创建索引。默认为 false 。

size

数值

(可选)为固定集合指定一个最大值(以字节计)。 如果 capped true,也需要指定该字段。

max

数值

(可选)指定固定集合中包含文档的最大数量。

小提示:在插入文档时, MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。


查看集合

show collections 

删除集合

db.collection_name.drop()


以下实例删除了  test 数据库中的集合  collection1 :


> use test
 switched to db test
 > show tables
 collection1
 > db.collection1.drop()
 true

文档

文档是一组键值对(key-value)(即 BSON)。MongoDB文档不需要设置相同的字段,并且字段相同不需要相同的数据类型,这与关系型数据库有很大的不同,也是MongoDB的一个非常突出的特点。

插入文档


MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:



db.COLLECTION_NAME.insert(document)

在 collection 集合中插入以下文档:

db.collection1.insert({"name":"大雄","age":20})

更新文档

方式一:

db.collection.update(<query>,<update>,<options>)

参数说明:

query:查询条件,相当于sql语句的where

update:更新文档内容

options:选项

将符合条件 "name":"大雄"的第一个文档替换为{"name":"大雄1","age":25}

db.collection1.update({"name":"大雄"},{"name":"大雄1","age":25})

 方式二:

$set修改器(使用$set修改器指定要更新的key,key不存在则创建,存在则更新。)

将符合条件 "name":"大雄"的所有文档更新name和age的值。

db.collection1.update({"name":"大雄1"},{$set:{"name":"大雄smile","age":26},{multi:true})

java mongo根据Criteria多条件查询 mongodb查询多个集合_数据_05

小提示:multi为false时表示更新第一个匹配的文档,true表示更新所有匹配的文档。

删除文档

MongoDB remove()函数是用来移除集合中的数据。

db.collection.remove( <query>, <justOne> )

如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:

db.collection.remove( 
 
 
<query>, 
 
 
{ 
 
 
justOne: <boolean>, 
 
 
writeConcern: <document> 
 
 
} 
 
 
)

参数说明:

query :(可选)删除的文档的条件。

justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。

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

(1)删除所有文档

db.collection1.remove({})

(2)删除符合条件的文档

db.collection1.remove({"name":"大雄1"})


如果你只想删除第一条找到的记录可以设置 justOne 为 1

db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

查询文档


MongoDB 查询数据的语法如下:



db.collection.find(query, projection)


参数说明:


query :可选,使用查询操作符指定查询条件

projection :可选,投影查询key,查询时返回文档中所有键值,可不填

(1)查询全部

db.collection1.find()

 (2)查询符合条件的记录

db.collection1.find({"name":"大雄1"})

(3)投影查询,只显示name和age两个key,_id主键不显示。

db.collection1.find({"name":"大雄smile"},{name:1,age:1,_id:0})



java mongo根据Criteria多条件查询 mongodb查询多个集合_nosql_06


 

如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

db.collection1.find().pretty()

java mongo根据Criteria多条件查询 mongodb查询多个集合_nosql_07

pretty() 方法以格式化的方式来显示所有文档

limit与skip方法

limit()方法基本语法:

db.COLLECTION_NAME.find().limit(NUMBER)

读取指定数量为两条记录

db.collection1.find({},{"name":1,_id:0}).limit(2)

java mongo根据Criteria多条件查询 mongodb查询多个集合_数据库_08

如果你们没有指定limit()方法中的参数则显示集合中的所有数据。

skip() 方法 基本语法:

db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

使用skip()方法来跳过指定数量的数据,显示第二条文档数据命令如下:

db.collection1.find({},{"name":1,_id:0}).limit(1).skip(1)

java mongo根据Criteria多条件查询 mongodb查询多个集合_mongodb_09

文档排序

db.COLLECTION_NAME.find().sort({KEY:1})

小贴士:sort() 方法可以通过参数指定排序的字段, 其中 1 为升序排列,而 -1 是用于降序排列。

db.collection1.find({}).limit(2).sort({"age":1})

java mongo根据Criteria多条件查询 mongodb查询多个集合_mongodb_10

 总结

以上详细介绍MongoDB对数据库、集合、文档的常用操作,希望对你操作MongoDB有一定的帮助。如果你不清楚的问题,欢迎下方留言。