Open renyh opened 6 years ago
创建一个 .NET Core 的 Console Application,在Nuget包管理工具输入mongodb
选择MongoDB.Driver这个包,然后安装,看到会自动安装依赖的下级包
MongoDB.Drive安装完成后,展开可看到依赖关系。
项目编译成功,后面就可以使用这个包的功能了。
这里特别说明一下包之间的依赖关系和添加顺序:
在Nuget包管理工具中,在左侧点一下 MongoDB.Driver 这个包,在右边可以看到它依赖的其他包。
我们项目如果要添加MongoDB包,只需要添加 MongoDB.Driver 这一个 Nuget 包即可,不要添加任何其他相关包。 因为 MongoDB.Driver 添加的时候它自己可以带入依赖的其他包,例如MongoDB.Driver.Core和MongoDB.Bson等,依赖的这些包不需要明显添加,它们会自动被添加,而且能自己弄清复杂的版本关系。
反过来也就是说,若我们自己单独添加一次 MongoDB.Bson 包,有可能添加了这个包的最新版本,但其实 MongoDB.Driver 只要用一个稍前的旧版本,这种可能,这样就给自己带来麻烦了。当然,你也可以找到 MongoDB 的 Nuget 包之间的版本依赖关系,你添加的时候仔细选择好版本号,但这个工作没有必要么,本来是可以避免的。
Nuget 这套体系它的精髓就是它替你搞清楚版本依赖关系。
同样,后面你发现 MongoDB.Driver 这个 Nuget 包有更新的时候,你更新它一个包即可,更新过程会自动搞清楚依赖包的版本关系,并自动更新这些依赖包。
所以添加或者更新包版本的时候一定要弄清楚有没有必要,还有依赖关系,就是说要抓住一个目的的“根”包即可,其他的不管它们。
本人前期不是很清楚Nuget包的这些依赖关系和添加技巧,先添加了MongoDB.Driver,又去填加MongoDB.Bson,结果出现下级某个依赖项版本不一致的情况,详见issue1的说明。
mongodb启动出现Failed to connect to 127.0.0.1:27017 after 5000ms milliseconds,giving up
今天一早使用mongodb,在命令行运行mongo.exe报错
todo
注意mongodb client的命令是区分大小写的
先通过命令行进行mongodb的程序目录,例如C:\Program Files\MongoDB\Server\4.2\bin
然后运行mongo
C:\Users\ryh>cd C:\Program Files\MongoDB\Server\4.2\bin
C:\Program Files\MongoDB\Server\4.2\bin>mongo
下面是mongo的一些命令 1.常用的命令 show dbs 显示数据库列表 use dbname 进入dbname数据库,大小写敏感,没有这个数据库也不要紧 show collections 显示数据库中的集合,相当于表格 db.dropDatabase() 删除数据库 2.创建&新增 db.users.save({"name":"jane"}) 创建了名为users的集合,并新增了一条{"name":"jane"}的数据 db.users.insert({"name":"jane2", "age":20}) 在users集合中插入一条新数据,,如果没有users这个集合,mongodb会自动创建 save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容。 存在数据:{ _id : 1, " name " : "jane1 "} ,_id是主键 insert({ _id : 1, " name " : " jane3 " }) 会提示错误 save({ _id : 1, " name " : " jane3" }) 会把 jane1改为 jane3,有update的作用。 3.删除 db.users.remove({}) 删除users集合下所有数据 db.users.remove({"name": "jane"}) 删除users集合下name=jane的数据 db.users.drop()或db.runCommand({"drop","users"}) 删除集合users db.runCommand({"dropDatabase": 1}) 删除当前数据库 4.查找 db.users.find() 查找users集合中所有数据 db.users.findOne() 查找users集合中的第一条数据 5.修改 db.users.update({"name":"jane"}, {"age":10}) 修改name=jane的数据为age=10,第一个参数是查找条件,第二个参数是修改内容,除了主键,其他内容会被第二个参数的内容替换,主键不能修改
关闭服务和删除进程 1.d:\mongodb\bin>NET stop MongoDB (关闭服务) 2.:\mongodb\bin>mongod -dbpath "d:\mongodb\data" -logpath "d:\mongodb\ log\MongoDB.log" -remove -serviceName "MongoDB" 3.SC delete "MongoDB"
模糊查询 https://docs.mongodb.com/manual/reference/operator/query/regex/
MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式。
db.keys_title.find({keystring:/庵传/})
db.keys_title.find({keystring:{$regex:"庵传"}})
https://www.cnblogs.com/kaituorensheng/p/5201225.html#_label1
C# 实现
string value = "驼庵";
// 下面两种写法都可以
//var filter = Builders<KeyItem>.Filter.Regex(f => f.keystring, new BsonRegularExpression(new Regex(value)));
var filter = Builders<KeyItem>.Filter.Regex(f => f.keystring, "/"+value+"/");
var result = collection.Find(filter).ToList() ;
foreach (KeyItem item in result)
{
idList.Add(item.ToJson()); // id要去重 todo
}
访问网页: https://www.mongodb.org/downloads 安装适当的MongoDB版本。 假定MongoDB被成功安装到了c:\program files\server\3.0子目录。
启动一个Windows命令提示符,创建数据库目录和日志目录:
mkdir c:\data\db
mkdir c:\data\log
然后,在 c:\data 里面创建一个文本文件 mongod.cfg,内容如下:
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
注册MongoDB为Windows Service:
以Administrator身份启动一个Windows命令提示符,进入mongodb的程序目录,例如c:\program files\server\3.0\bin
运行命令:
mongod.exe --config "C:\data\mongod.cfg" –install
最后为了把MongoDB的Service启动起来,运行命令: net start MongoDB
注:以上安装目录均为示范举例,实际安装位置可以灵活处理。
.NET Core使用mongodb https://www.codeproject.com/Articles/1151842/Using-MongoDB-NET-Driver-with-NET-Core-WebAPI
MongoDB数据库设计 https://blog.csdn.net/li295214001/article/details/58588673
MongoDB驱动之Linq操作 www.cnblogs.com/shy1766IT/p/5264180.html
C#驱动之LINQ教程 http://www.aichengxu.com/nosql/6004215.htm
Beginners' guide to using MongoDB 3.4 and the official C# driver https://www.codeproject.com/articles/524602/beginners-guide-to-using-mongodb-and-the-offic
MongoDB .NET Driver API Documentation mongodb.github.io/mongo-csharp-driver/2.5/apidocs/
MongoDB.NetDriver(C#驱动)-内嵌数组/嵌入文档的操作之增加、删除、修改、查询(Linq分页) https://www.2cto.com/database/201803/730040.html
基于C#的MongoDB数据库开发应用(3)--MongoDB数据库的C#开发 www.cnblogs.com/wuhuacong/p/5123313.html http://www.cnblogs.com/wuhuacong/p/5106662.html
mongodb官方文档 http://mongodb.github.io/mongo-csharp-driver/2.2/getting_started/installation/
mongodb的官方文档 https://docs.mongodb.com/ecosystem/drivers/csharp/#download-upgrade
MondoDb驱动的源代码。 https://github.com/zhongzf/mongo-csharp-driver
db.collection.find() https://docs.mongodb.com/manual/reference/method/db.collection.find/
mongodb学习笔记--$elemMatch操作符的使用 https://blog.csdn.net/u012406177/article/details/56279160
MongoDB——$elemMatch(内嵌文档查询匹配) https://blog.csdn.net/Shiyaru1314/article/details/68496642
一个专栏 https://blog.csdn.net/shiyaru1314/article/category/5866389
在.Net Core中使用MongoDB的入门教程(二) https://blog.csdn.net/only_yu_yy/article/details/78887864
GridFS
GridFS https://docs.mongodb.com/manual/core/gridfs/
GridFSBucket 前端api http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html
GridFSBucket Class C# http://api.mongodb.com/csharp/2.1/html/T_MongoDB_Driver_GridFS_GridFSBucket.htm
Beginners' guide to using MongoDB 3.4 and the official C# driver https://www.codeproject.com/articles/524602/beginners-guide-to-using-mongodb-and-the-offic
GridFS详细分析 https://blog.csdn.net/hengyunabc/article/details/7294099