MongoDB常用命令和使用

最近简单看了下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.网络爬虫
 
以上,仅用于学习和总结!

原文地址:https://www.cnblogs.com/ywkcode/p/15522008.html