65.9K
CodeProject 正在变化。 阅读更多。
Home

MongoDB 入门

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

3分钟阅读

viewsIcon

9634

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 示例 下载。

    深入阅读

    © . All rights reserved.