目录
简介
基于分布式文件存储的开源数据库,由C++语言编写
文档型数据库,NoSQL数据库的一种
一行表示一条记录,一列表示一种属性
数据库由多个集合组成,集合对应MySQL的表,集合包含多个文档,文档对应MySQL的行
文档使用BSON(Binary JSON)格式编写
特点
- 无需事先创建好数据库和集合
- 无需预先定义集合中字段的类型和长度
- 同一集合中的数据无需相同的结构
常用命令
数据库相关命令
查看所有数据库:show dbs
使用或创建数据库:use <database_name>
查看当前使用的数据库:db
集合相关命令
查看所有集合:show collections
创建集合:db.createCollection('test')
删除集合:db.test.drop()
文档操作命令
插入单个文档:db.test.insertOne(<document>)
插入多个文档:db.test.insertMany([<document1>, <document2>, ...])
查询所有数据:db.test.find()
查询单个数据:db.test.findOne(<query>)
更新单个文档:db.test.updateOne(<query>, <update>)
更新多个文档:db.test.updateMany(<query>, <update>)
替换单个文档:db.test.replaceOne(<query>, <replacement>)
删除单个文档:db.test.deleteOne(<query>)
删除多个文档:db.test.deleteMany(<query>)
索引操作命令
创建索引:db.test.createIndex({<field>: <type>})
查看索引:db.test.getIndexes()
删除索引:db.test.dropIndex('<index_name>')
聚合操作命令
聚合查询:
db.<collection_name>.aggregate([
{ $match: { <criteria> } },
{ $group: { _id: "$<field>", total: { $sum: "$<field>" } } },
{ $sort: { total: -1 } }
])
其他命令
统计集合中的文档数量:db.test.countDocuments(<query>)
查看集合的统计信息:db.test.stats()
查看数据库状态:db.stats()
选择切换数据库:use articledb
查询符合条件的前几条记录:db.test.find({条件}).limit(条数)
查询符合条件的跳过的记录:db.test.find({条件}).skip(条数)
修改数据:db.test.update({条件},{修改后的数据}) 或db.test.update({条件},{$set:{要修改部分的字段:数据})
修改数据并自增某字段值:db.test.update({条件},{$inc:{自增的字段:步进值}})
删除数据:db.test.remove({条件})
统计查询:db.test.count({条件})
模糊查询:db.test.find({字段名:/正则表达式/})
条件比较运算:db.test.find({字段名:{$gt:值}})
包含查询:db.test.find({字段名:{$in:[值1,值2]}})或db.test.find({字段名:{$nin:[值1,值2]}})
条件连接查询:db.test.find({$and:[{条件1},{条件2}]})或db.test.find({$or:[{条件1},{条件2}]})