MongoDBController.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.Web.Mvc;
  5. using MongoDB.Bson.Serialization;
  6. using MongoDB.Driver;
  7. using MongoDB.Driver.Builders;
  8. using Benchmarks.Mono.AspNet.Models;
  9. namespace Benchmarks.Mono.AspNet.Controllers
  10. {
  11. public class MongoDBController : Controller
  12. {
  13. private static string connectionString = ConfigurationManager.ConnectionStrings["MongoDB"].ConnectionString;
  14. static MongoDBController()
  15. {
  16. BsonClassMap.RegisterClassMap<World>(m =>
  17. {
  18. m.MapProperty(w => w.id);
  19. m.MapProperty(w => w.randomNumber);
  20. });
  21. }
  22. public ActionResult Index(int? queries)
  23. {
  24. MongoClient client = new MongoClient(connectionString);
  25. MongoServer server = client.GetServer();
  26. MongoDatabase database = server.GetDatabase("hello_world");
  27. MongoCollection<World> collection = database.GetCollection<World>("world");
  28. List<World> worlds = new List<World>(queries ?? 1);
  29. Random random = new Random();
  30. for (int i = 0; i < worlds.Capacity; i++)
  31. {
  32. int randomID = random.Next(0, 10000) + 1;
  33. worlds.Add(collection.FindOne(Query<World>.EQ(w => w.id, randomID)));
  34. }
  35. return queries != null ? Json(worlds, JsonRequestBehavior.AllowGet)
  36. : Json(worlds[0], JsonRequestBehavior.AllowGet);
  37. }
  38. }
  39. }