Kel*_*b56 4 c# asp.net-mvc mongodb
我正在尝试编写一个方法,它将所有 Book 文档从 MongoDB 返回到我的 mvc 应用程序。首先,我连接到数据库,检索集合并将该集合转换为 Json 文件。接下来,我使用序列化程序创建了一个列表,其中指定了几个字段(姓名、作者等),我尝试将其反序列化为列表,并使用 for 循环返回书籍列表。可悲的是,我在返回行中出错(转换错误)。欢迎任何建议!
public List<Book> getAllBooks()
{
var mongoClient = new MongoClient("mongodb://localhost");
var database = mongoClient.GetDatabase("SearchForKnowledge");
var coll = database.GetCollection<BsonDocument>("Book");
coll.ToJson();
List<Book> collection = new List<Book>();
JavaScriptSerializer js = new JavaScriptSerializer();
collection = (List<Book>)Newtonsoft.Json.JsonConvert.DeserializeObject(coll.ToString());
for (int i = 0; i < collection.Count(); i++)
{
return collection[i];
}
}
Run Code Online (Sandbox Code Playgroud)
好吧,您应该尝试更简单的方法:
// add this using first
using MongoDB.Driver.Linq;
var coll = database.GetCollection<Book>("Book").AsQueryable<Book>();
Run Code Online (Sandbox Code Playgroud)
而且你可以做任何事情,例如:
var someBooks = coll.Where(b => b.Year == 2014).Skip(0).Take(10).ToArray();
Run Code Online (Sandbox Code Playgroud)
PS:你需要看看这个教程:https : //mongodb-documentation.readthedocs.org/en/latest/ecosystem/tutorial/use-linq-queries-with-csharp-driver.html