参考:https://www.runoob.com/mongodb/
1、创建数据库
use DATABASE_NAME
如果数据库不存在,则创建数据库,否则切换到指定数据库。
MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
2、查看所有数据库
show dbs
注意:如果数据库中没有数据不会显示
3、查看当前数据库
db
4、删除数据库
db.dropDatabase()
先使用use命令切换到要删除的数据库,然后执行上述命令
5、创建集合(集合类似数据库中的表)
db.createCollection("myCollection")
先使用use命令切换到指定数据库,然后执行创建集合命令,创建集合后空数据库也会显示
6、查询数据库所有集合
show collections (shwo tables也可,建议前者)
查询当前所在数据库的所有集合,没有数据的集合也会显示
7、删除集合
db.myCollection.drop() 例:db.runoob.drop (runoob是collection的名字)8、
8、插入文档
文档的数据结构和 JSON 基本一样。
所有存储在集合中的数据都是 BSON 格式。
BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
(1)db.COLLECTION_NAME.insert(document)
insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,
提示主键重复,不保存当前数据。
(2) db.COLLECTION_NAME.save(document)
save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使 用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。
9、查看已插入文档
db.myCollection.find()
10、更新文档
db.collection.update(
参数说明:
只更新第一条记录: db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
全部更新:db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
只添加第一条:db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
全部添加进去: db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
全部更新:db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
只更新第一条记录:db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
11、删除文档
db.collection.remove(
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
12、删除集合下所有文档
db.col.remove({})
13、如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,
db.myCollection.find().pretty()
14、MongoDB 与 RDBMS Where 语句比较
15、模糊查询
查询 title 包含"教"字的文档: db.col.find({title:/教/})
查询 title 字段以"教"字开头的文档: db.col.find({title:/^教/})
查询 titl e字段以"教"字结尾的文档: db.col.find({title:/教$/})
16、分页 limit 和 skip
(1)如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
db.COLLECTION_NAME.find().limit(NUMBER)
例:db.col.find({},{"title":1,_id:0}).limit(2) 返回最多两条数据
(2)我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。skip()方法默认参数为 0 。
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
例:db.col.find({},{"title":1,_id:0}).limit(1).skip(1)
17、排序 sort()
在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
db.COLLECTION_NAME.find().sort({KEY:1})
例:db.col.find({},{"title":1,_id:0}).sort({"likes":-1})
18、索引
db.collection.createIndex(keys, options)
语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。
例:db.col.createIndex({"title":1})
createIndex() 方法中你也可以设置使用多个字段创建索引(关系型数据库中称作复合索引)。
例:db.col.createIndex({"title":1,"description":-1})
在后台创建索引:db.values.createIndex({open: 1, close: 1}, {background: true})
19、聚合
MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。
例:db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])