最近简单看了下MongoDB,简单记录下心得:
(一)安装
环境变量配置,找到Path,配置全局环境变量
(二)常用命令
增删改查:
====创建====
创建数据库:
use DatabaseName
创建集合:
db.createCollection(name,options)
创建数据:
1 db.集合名称.insert({name:"张三",Age:"26"})
====查询====
数据库查询:
show database
集合查询:
show collections
数据查询:
a.条件查询
1 db.集合名称.find({}) 2 db.集合名称.find({name:""})
b.排序&分页
1 db.c1.find({}).sort({age:1}) 2 降序 3 db.c1.find({}).sort({age:-1}) 4 分页查询 跳过两条查询两条 5 db.c1.find({}).sort({age:1}).skip(2).limit(2)
c.聚合查询
1 db.集合名称.aggregate([ 2 {管道:{表达式}} 3 .... 4 ])
====删除====
数据库删除:
db.dropDatabase()
集合删除:
db.集合名称.drop()
数据删除:
a.所有删除
db.集合名称.deleteMany({})
b.条件删除
db.集合名称.deleteMany({name:"张三"})
====修改====
db.集合名.update(条件, 新数据) {修改器: {键:值}}
(三)Js调用(略)
(四)事务 需要集群
集群方式:
a.副本集,读写分离,主节点写,从节点读,数据冗余(提升读的性能)
b.分片,多个主节点,多个从节点,一个主节点负责一部分数据(提升写的性能)
(五).Net实践
引入MongoDB.Driver包
封装增删改查DBbase.cs
1 public class DBbase<T> where T : class, new() 2 { 3 MongoClient client; 4 IMongoDatabase database; 5 public IMongoCollection<T> collection; 6 public DBbase() 7 { 8 9 client = new MongoClient("mongodb://localhost:27017"); 10 database = client.GetDatabase("test"); 11 Type type = typeof(T); 12 collection = database.GetCollection<T>(type.Name.ToLower()); 13 } 14 15 public void DropDatabase() 16 { 17 client.DropDatabase("test"); 18 } 19 public void InsertOne(T model) 20 { 21 collection.InsertOne(model); 22 } 23 public void InsertMany(params T[] modes) 24 { 25 collection.InsertMany(modes); 26 } 27 public IMongoQueryable<T> Select() 28 { 29 return collection.AsQueryable<T>(); 30 } 31 public IMongoQueryable<T> Select(int pageIndex, int pageSize) 32 { 33 return collection.AsQueryable<T>().Skip(pageSize * (pageIndex - 1)).Take(pageSize); 34 } 35 public IMongoQueryable<T> Select(Expression<Func<T, bool>> predicate, Expression<Func<T, object>> keySelector, int pageIndex, int pageSize) 36 { 37 return collection.AsQueryable<T>().Where(predicate).OrderBy(keySelector).Skip(pageSize * (pageIndex - 1)).Take(pageSize); 38 } 39 public void UpdateMany(Expression<Func<T, bool>> filter, UpdateDefinition<T> update) 40 { 41 collection.UpdateMany(filter, update); 42 } 43 44 public void UpdateOne(Expression<Func<T, bool>> filter, T update) 45 { 46 collection.ReplaceOne(filter, update); 47 } 48 49 public void DeleteMany(Expression<Func<T, bool>> filter) 50 { 51 collection.DeleteMany(filter); 52 } 53 54 }
演示效果:
事务涉及的分片部署和副本部署,后续有时间进行补充!
MongoDB使用场景总结:
1.日志收集 并发量
2.传感器 并发量也比较大
3.网络爬虫
以上,仅用于学习和总结!