Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MongoDB知识 #4

Open
renyh opened this issue May 4, 2018 · 5 comments
Open

MongoDB知识 #4

renyh opened this issue May 4, 2018 · 5 comments

Comments

@renyh
Copy link
Collaborator

renyh commented May 4, 2018

.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

@renyh
Copy link
Collaborator Author

renyh commented May 8, 2018

.NET Core项目通过Nuget引用MongoDB驱动包

创建一个 .NET Core 的 Console Application,在Nuget包管理工具输入mongodb
image

选择MongoDB.Driver这个包,然后安装,看到会自动安装依赖的下级包
image

MongoDB.Drive安装完成后,展开可看到依赖关系。
image

项目编译成功,后面就可以使用这个包的功能了。


这里特别说明一下包之间的依赖关系和添加顺序:

在Nuget包管理工具中,在左侧点一下 MongoDB.Driver 这个包,在右边可以看到它依赖的其他包。
image

我们项目如果要添加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的说明。

@renyh renyh changed the title 开发知识 Mongodb知识 May 25, 2018
@renyh renyh changed the title Mongodb知识 MongoDB知识 May 25, 2018
@renyh
Copy link
Collaborator Author

renyh commented May 25, 2018

mongodb启动出现Failed to connect to 127.0.0.1:27017 after 5000ms milliseconds,giving up

今天一早使用mongodb,在命令行运行mongo.exe报错
image

todo

@renyh
Copy link
Collaborator Author

renyh commented May 25, 2018

注意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"

@renyh
Copy link
Collaborator Author

renyh commented Jun 2, 2018

模糊查询
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
}

@renyh
Copy link
Collaborator Author

renyh commented Sep 16, 2018

安装MongoDB

访问网页:
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

注:以上安装目录均为示范举例,实际安装位置可以灵活处理。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant