连接 MongoDB 与网络 API

Connect MongoDB with Web API

我正在尝试在 Visual Studio 2013 年将 MongoDB 与 Web API 连接。我想要做的就是使用 C# 创建一个简单的数据库。我的所有代码都在 ValuesControllers.cs 文件中。我创建了一个简单的模型 class -

public class Book
{
    [BsonId]
    public int Id { get; set; }
    public string Title { get; set; } 
}

并修改了Get方法

public IEnumerable<Book> Get()
{
     MongoClient client = new MongoClient();
     var server = client.GetServer();
     var db = server.GetDatabase("BookStore");
     var collection = db.GetCollection<Book>("Book");
     Book[] books = new Book[] 
     { 
            new Book {Id = 1, Title="Book Name 1" },
            new Book {Id = 2, Title="Book Name 2" },
            new Book {Id = 3, Title="Book Name 3" },
            new Book {Id = 4, Title="Book Name 4" }

     };
     collection.Save(books);
     return books;
}

它 returns 值但不创建数据库。我在控制台应用程序中尝试过这个并且它有效。 我想做一个简单的例子来连接MongoDB。

下面的代码应该可以工作。确保后台有 mongo 数据库 运行。

我已经将你的代码修改如下

  1. 我在创建 MongoClient 对象时添加了 mongo 连接 URL 所以它将连接到本地 mongo Db。
  2. 将书籍保存到 数据库,而不是试图将数组直接保存到数据库,代码 现在正在遍历每个项目并单独保存。

这是代码

public IEnumerable<Book> Get()
{     
    var client = new MongoClient("mongodb://localhost:27017");
    var server = client.GetServer();
    var db = server.GetDatabase("BookStore");
    var collection = db.GetCollection<Book>("Book");
    Book[] books =
    {
         new Book { Id = 1, Title = "Book Name 1" }, 
         new Book { Id = 2, Title = "Book Name 2" },
         new Book { Id = 3, Title = "Book Name 3" }, 
         new Book { Id = 4, Title = "Book Name 4" }
    };
    foreach (var book in books)
    {
        collection.Save(book);
    }
    return books;
}