标签 mongodb 下的文章

Mongodb Driver for C#/.Net的增删改查

我之前在《.Net Core系列教程(三)——使用Mongodb》中,说过在.Net Core下,怎样使用Mongodb数据库,这篇文章就作为它的延伸,来说下在.Net中,怎样使用Mongodb Driver来进行最常用的增、删、改、查操作。当然,我这个的环境是在.Net Core下,在其他版本的.Net环境下,相差不大。我这实例中使用的驱动是2.4.0版的,而现在最新版本是2.4.4。
闲言少叙,还是撸代码吧。
先按《.Net Core系列教程(三)——使用Mongodb》文章中的方法,设置好数据库的相关配置,之后取得数据库:

    var db = client.GetDatabase("database");

这个代码可以按照自己的实际需求来写,比如这样:

    var db = client.GetDatabase(MongoUrl.Create(settings.Value.MongodbConnection).DatabaseName);

取得一个collection,这里以news表为例,Models.News是News的实例类:

    var collection = db.GetCollection<Models.News>("news");

我们再准备一下具体要操作的数据:

    var request=new Models.News(){title:"新闻测试",body:"这里是新闻测试的内容",author:"张三","status":True};

这些前提准备好了之后,再开始具体的数据库操作了

1.增加操作:

    collection.InsertOne(request);

2.修改操作:

    var query = new BsonDocument("_id", new ObjectId(id));
    var dict = new Dictionary<string, object> {
        { "title",request.title},
        { "body",request.body},
        { "author",request.author},
        { "status",request.status}
    };
    var data = new BsonDocument(dict);
    collection.UpdateOne(query, new BsonDocument("$set", data));

3.查询操作:

    //查列表
    int page=1;  //当前页号
    int pagesize=50;  //每页50条记录
    BsonDocument query = new BsonDocument(){"author":"张三","status":True};
    int total = Convert.ToInt32(collection.Count(query));  //数据总记录数
    var list = collection.Find(query).Sort(new BsonDocument("_id", -1)).Limit(pagesize).Skip((page-1)*pagesize).ToList();  //带分页查询,按_id倒序排序
    
    //查单条
    BsonDocument query = new BsonDocument("_id", _id);
    var data = collection.Find(query).FirstOrDefault();

4.删除操作:

    ObjectId _id = new ObjectId(id);
    collection.DeleteOne(new BsonDocument("_id", _id));

以上只是其中几个比较简单的用法,其实还有很多实现方法,比如异步方法、插入多条等等,其他的等有时间再整理吧。

Mongodb 3.4 二进制安装方法

先说下环境:
CentOS7.3,当然Debian/Ubuntu也基本一致。
步骤:
1.下载二进制安装包:

wget -c 
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.0.tgz

2.解压缩:

tar -zxvf mongodb-linux-x86_64-3.4.0.tgz

3.把二进制文件放到/usr/local/mongodb下面,当然不是必须要放这里的:

cp mongodb-linux-x86_64-3.4.0 /usr/local/mongodb -f

4.设置环境变量:

# 编辑/etc/profile文件
vi /etc/profile
# 增加一条环境变量设置
export PATH=/usr/local/mongodb/bin:$PATH

5.增加mongodb启动用户:

useradd -g mongod mongod

6.创建数据库文件夹,并给mongod权限,这里给放到/data/mongo下:

mkdir -p /data/mongo
chown -R mongod:mongod /data/mongo

7.创建日志目录,并给mongod权限

mkdir -p /var/log/mongodb
chown -R mongod:mongod /var/log/mongodb

8.创建进程管理目录,并给mongod权限

mkdir -p /var/run/mongodb
chown -R mongod:mongod /var/run/mongodb

9.创建mongodb配置文件mongod.conf,并给mongod权限

vi /etc/mongod.conf
chown mongod:mongod /etc/mongod.conf

之后内容如下:

# mongod.conf
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
  dbPath: /data/mongo
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:
# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  # Listen to local interface only, comment to listen on all interfaces.
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:

保存

10.增加启动脚本,这里使用systemctl:

vi /usr/lib/systemd/system/mongod.service

内容如下:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/mongodb/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Install]
WantedBy=multi-user.target

保存

11.启用启动脚本

systemctl enable mongod.service

12.使用服务:

# 启动:
service mongod start
# 停止:
service mongod stop
# 重启:
service mongod restart

如果mongo命令不可用,请检查环境变量的设置;如果mongo命令报错,请查看日志/var/log/mongodb/mongod.log

13.卸载:

# 停止服务:
service mongod stop
# 删除启动脚本
rm /usr/lib/systemd/system/mongod.service -f
# 重新加载脚本
systemctl daemon-reload
# 删除配置文件
rm /etc/mongod.conf -f
# 删除日志文件夹
rm /var/log/mongodb -rf
#删除进程管理文件夹
rm /var/run/mongodb -rf
#删除安装文件
rm /usr/local/mongodb -rf
#删除数据库文件
rm /data/mongo -rf
#清除环境变量
vi /etc/profile
#删除 export PATH=/usr/local/mongodb/bin:$PATH,并保存

(完)

.Net Core系列教程(三)——使用Mongodb

本文中,假定你已经安装好了Mongodb、及ASP.NET Core的开发环境。本文主要说下在ASP.NET Core中怎样连接Mongodb数据库:
一、在ASP.NET Core中使用Mongodb,首先要安装C#的Mongodb Driver,现在最新的是2.3版本,使用Nuget直接安装就可以。
二、配置数据库的连接,打开appsettings.json文件,添加下面设置:

  "ConnectionStrings": {
    "MongodbConnection": "mongodb://127.0.0.1:27017"
  }

三、新建一个关于连接数据库的Model类,我是放在Models类库中,具体可以根据自己的项目来

    public class ConnectionStrings
    {
        public string MongodbConnection { get; set; }
    }

四、打开Startup.cs文件,修改 ConfigureServices 方法,如下:

        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddApplicationInsightsTelemetry(Configuration);
            services.AddOptions();    //增加
            services.Configure<IB.Models.ConnectionStrings>(Configuration.GetSection("ConnectionStrings"));    //增加数据库连接
            services.AddMvc();
        }

五、使用

        private readonly IOptions<Models.ConnectionStrings> _settings;    //取数据库连接串
        public DemoController(IOptions<Models.ConnectionStrings> settings)
        {
            this._settings = settings;
        }

以上

Debian 8安装Mongodb

1.添加apt源

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Ubuntu:

    $ echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

- 阅读剩余部分 -

分类

最新文章

最近回复

  • 青山: 某种原因,暂停友链,抱歉。
  • 青山: 计划搬迁到腾讯云,正...
  • 老徐: 具体要哪个呢?
  • 老徐: 是不是有点老?
  • 青山: 哇,林志炫
  • 老白: 哇,这改的可以,能不...
  • 老徐: 23333
  • 许建华: 我是为了表情包来的~
  • vultr vps: 感谢分享深入学习
  • 青山: 每一次都是不同的感受

归档

标签云

C# .net core asp.net 情感 SQL mongodb sql server EasyUI 安全 激活 linux 身份验证 https typecho .net sql注入 kms MVC IIS 高并发 IE 坑爹 服务器 mysql Oracle Combobox Datagrid 口语 数据抓取

其它