• 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.网络爬虫
     
    以上,仅用于学习和总结!

  • 相关阅读:
    .net web开发经典图书总结
    Asp.net Web API实战
    扩展方法之二分查找
    在线转换图片文件等
    如何减少代码中的分支语句
    web插件化解决方案 开发分享
    .NET 4.5 MEF 基于约定的编程模型重典
    所有排序总结(内排序)
    生成zip文件
    open source ESB and integration platform
  • 原文地址:https://www.cnblogs.com/ywkcode/p/15522008.html
Copyright © 2020-2023  润新知