MongoDB 入门





0/5 (0投票)
MongoDB入门。MongoDB是NoSQL数据库的一个著名代表。它是一个面向文档的数据库,这意味着数据将被
MongoDB 入门
MongoDB 是 NoSQL 数据库的一个著名代表。它是一个面向文档的数据库,这意味着数据将存储在文档中。在本文中,我们将了解如何为 Windows 设置 MongoDB,以及如何开始使用它。
为 Windows 设置 MongoDB
首先从以下站点下载 MongoDB 二进制文件 - https://mongodb.ac.cn/downloads 并将下载的二进制文件解压缩到您选择的文件夹。现在您必须创建一个文件夹,MongoDB 可以在其中存储数据。 这不会自动创建。
在您的 shell 中执行以下命令
C:\> mkdir \data
C:\> mkdir \data\db
最后一步,让我们运行 MongoDB。导航到您的 MongoDB 文件夹并执行 mongod.exe
C:\> cd \my_mongo_dir\bin
C:\my_mongo_dir\bin>mongod
现在我们准备好开始了。如果要打开 shell 管理控制台,请使用以下命令
C:\my_mongo_dir\bin>mongo
您也可以使用基于 Web 的管理控制台 - https://:28017/
可以在以下站点找到详细指南 - https://mongodb.ac.cn/display/DOCS/Quickstart+Windows
使用 MongoDB
设置我们的数据库
在此示例中,我们将处理一个存储作者及其书籍的数据库。为了降低复杂性,我们使用一个简单的控制台应用程序,但您也可以在 ASP.NET 中使用所学的一切。让我们设置我们的数据库和我们的集合。
如果您现在还没有,请从 shell 启动 mongo.exe
C:\my_mongo_dir\bin>mongo
要熟悉您可以使用的命令,请输入以下内容
> help
您将看到服务器范围命令的列表。现在我们只创建一个新数据库
> use tutorial
如果数据库存在,您将被连接到它。如果不是,将创建一个新数据库。
要查看更多特定于数据库的命令,请使用以下命令
> db.help()
设置数据库的最后一步是创建集合
> db.createCollection(books)
现在我们准备好开始编码了。
文件 - 新建 - 项目
创建一个新的控制台应用程序,并根据需要命名。您可以使用不同的 API 来使用 MongoDB。我最喜欢的是官方 C# 驱动程序,您可以通过 NuGet 获取它 - https://nuget.net.cn/List/Packages/mongocsharpdriver
连接到 MongoDB
首先,我们将连接到我们之前创建的数据库。
using System; using System.Xml.Linq; using MongoDB.Bson; using MongoDB.Driver;
namespace WikiExampleConsole { class Program { static void Main(string[] args) { MongoServer mongo = MongoServer.Create(); mongo.Connect(); var db = mongo.GetDatabase("tutorial"); ... mongo.Disconnect(); } } }
此代码大多是不言自明的。首先,您创建一个 MongoServer 对象并连接到我们的 tutorial 数据库。
毕竟,不要忘记关闭连接。
获取集合
作为第二步,我们将连接到我们的 book 集合。
...
using (mongo.RequestStart(db)) {
var collection = db.GetCollection<BsonDocument>("books");
... }
...
存储数据
using (mongo.RequestStart(db))
{ var collection = db.GetCollection<BsonDocument>("books");
BsonDocument book = new BsonDocument() .Add("_id", BsonValue.Create(BsonType.ObjectId)) .Add("author", "Ernest Hemingway") .Add("title", "For Whom the Bell Tolls"); collection.Insert(book);
}
在这里,我们创建一个新的 BsonDocument 实例,并添加一个 id、作者姓名和书名。毕竟,我们只需要将文档插入到集合中。我们的文档现在看起来像这样
{ "_id" : 7, "author" : "Ernest Hemingway", "title" : "For Whom the Bell Tolls" }
查询数据
我们现在已将数据放置到位,是时候从我们的数据库中获取一些结果了。现在我们只需要作者的姓名和书名。
...
using (mongo.RequestStart(db)) { var collection = db.GetCollection<BsonDocument>("books"); BsonDocument book = new BsonDocument() .Add("_id", BsonValue.Create(BsonType.ObjectId)) .Add("author", "Ernest Hemingway") .Add("title", "For Whom the Bell Tolls"); collection.Insert(book); var query = new QueryDocument("author", "Ernest Hemingway"); foreach (BsonDocument item in collection.Find(query)) { BsonElement author = item.GetElement("author"); BsonElement title = item.GetElement("title"); Console.WriteLine("Author: {0}, Title: {1}", author.Value, title.Value); }
... }
...
首先我们定义我们的查询。它就像一个键值查询。 令人惊讶的是,我们正在寻找 Ernest Hemingway。
Find 方法执行我们的查询,我们可以使用 BsonDocument 实例来获取我们的作者和书名。
所以,现在我们有了我们的特定数据。但是如果我们需要所有数据该怎么办?
...
foreach (BsonElement element in item.Elements) { Console.WriteLine("Name: {0}, Value: {1}", element.Name, element.Value); }
...
现在我们完成了。我希望你玩得开心并且学到了一点东西。 您可以在下面找到完整的代码
完整代码
using System; using System.Xml.Linq; using MongoDB.Bson; using MongoDB.Driver;
namespace WikiExampleConsole { class Program { static void Main(string[] args) { Console.WriteLine("Connect..."); MongoServer mongo = MongoServer.Create(); mongo.Connect(); Console.WriteLine("Connected");
Console.WriteLine(); var db = mongo.GetDatabase("tutorial"); using (mongo.RequestStart(db)) { var collection = db.GetCollection<BsonDocument>("books"); BsonDocument book = new BsonDocument() .Add("_id", BsonValue.Create(BsonType.ObjectId)) .Add("author", "Ernest Hemingway") .Add("title", "For Whom the Bell Tolls"); collection.Insert(book); var query = new QueryDocument("author", "Ernest Hemingway"); foreach (BsonDocument item in collection.Find(query)) { BsonElement author = item.GetElement("author"); BsonElement title = item.GetElement("title");
Console.WriteLine("Author: {0}, Title: {1}", author.Value, title.Value); foreach (BsonElement element in item.Elements) { Console.WriteLine("Name: {0}, Value: {1}", element.Name, element.Value); } }
} Console.WriteLine(); Console.Read(); mongo.Disconnect(); }
} }
下载
示例解决方案可以从 MSDN 示例 下载。