zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

mongodb使用总结

MongoDB 总结 使用
2023-09-11 14:13:57 时间

mongodb使用总结

1 什么是文档数据库服务
数据库--集合(表)--文档(行)
MongoDB一般采用类似JSON的格式存储,存储的内容是文档型的
2 产品优势
支持高并发+灵活的存储结构

3 功能特性
4 系统架构
实例:数据库--集合(文档1,文档2)
集群由Mongos(路由)、config(配置)和Shard(分片)组件构成。
数据读写请求经mongos分发,通过查询config信息,并行分配到相应shard,可轻松
应对高并发场景,且config和shard均采用三副本架构,保证高可用。

需要通过分析执行过程(查询计划)进行检查并优化,以避免慢查询
db.collection.find().explain()

5.创建和管理数据库:

创建info数据库。
use info

为数据库插入一条数据。
db.user.insert({"name": "joe"})

删除数据库
db.dropDatabase()
show dbs

6.创建和管理集合
执行db.createCollection(name, options)创建集合。
db.createCollection(<name>, { capped: <boolean>,
autoIndexId: <boolean>,
size: <number>,
max: <number>,
storageEngine: <document>,
validator: <document>,
validationLevel: <string>,
validationAction: <string>,
indexOptionDefaults: <document>,
viewOn: <string>,
pipeline: <pipeline>,
collation: <document>,

7.为集合中插入一条数据。
db.coll.insert({"name": "sample"})
8.查看已有集合。
show collections

8.删除集合。
db.coll.drop()

9.创建分片集合
使数据库可分片。
sh.enableSharding("info")

10.创建分片表,并指定分片键。如下为info数据库的fruit集合分片,且分片键是"id"。
sh.shardCollection("info.fruit", {"_id": "hashed"})

11.执行db.collection_name.drop()删除集合。
writeConcern: <document>}

12.创建和管理索引
DDS使用如下命令创建索引:
db.collection.createIndex(keys, options)
单字段索引(Single Field Index)
db.user.createIndex({"name": 1}) 1升序,-1降序

查看集合索引。
db.user.getIndexes()

删除集合所有索引。
db.user.dropIndexes()

删除集合指定索引。如下方式删除user集合中"name"索引。
db,user.dropIndex({"name": 1})

连接到单节点:
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?
authSource=admin&ssl=true
● 连接到副本集:
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?
authSource=admin&replicaSet=replica&ssl=true
● 连接到集群:
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?
authSource=admin&ssl=true

https://docs.mongodb.com/drivers/

 

----------------------------------------------find,count,sort,distinct,createindex--------------------------------------

db.getCollection("amazon_reports_open_listings_data_1").find()
db.amazon_reports_open_listings_data_1.createIndex({"Removed":1}, {background: true})
db.amazon_reports_open_listings_data_1.distinct("OrderSourceID")

db.amazon_reports_open_listings_data_1.find({"Removed":false}).count() // 67399032
db.amazon_reports_open_listings_data_1.find({"Removed":false}).sort("OrderSourceID":1) // 67399032
db.amazon_reports_open_listings_data_1.find({"Removed":false}).sort({"OrderSourceID":1}).limit(300).skip(100)
db.amazon_reports_open_listings_data_1.find({"OrderSourceID":5004},{"Removed":false}).sort({"OrderSourceID":1}).limit(1000).skip(0)
db.amazon_reports_open_listings_data_1.find({"OrderSourceID":5005},{"Removed":false}).sort({"OrderSourceID":1}).count()