|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
namespace DocumentDB.Mongo
{
public class MongoRawDocumentDemo
{
private MongoServer server;
private MongoDatabase rawDocumentDemoDB;
private MongoCollection<BsonDocument> users;
public MongoRawDocumentDemo(MongoServer server)
{
this.server = server;
rawDocumentDemoDB = server.GetDatabase("rawDocumentDemoDB");
rawDocumentDemoDB.Drop();
}
public void DoInsert()
{
StartRequest();
Insert();
StopRequest();
}
public void DoInsertAndUpdate()
{
StartRequest();
Insert();
UpDate();
StopRequest();
}
private void UpDate()
{
var savedUsers = users.FindAll();
if (savedUsers.Any())
{
BsonDocument userToModify = savedUsers.First();
if (userToModify != null)
{
Console.WriteLine(string.Format("Decrementing User Id : {0}, Age By -1", userToModify["_id"]));
userToModify["age"] = userToModify["age"].AsInt32 - 1;
users.Save(userToModify);
}
}
users = rawDocumentDemoDB.GetCollection("users");
PrintAllUsers(users);
}
private void Insert()
{
users = rawDocumentDemoDB.GetCollection("users");
// Create BsonDocument object for new user
var user = new BsonDocument();
user["firstname"] = "Goat";
user["lastname"] = "Head";
user["age"] = 12;
user["createdate"] = DateTime.Now;
// Insert new user object to collection
users.Insert(user);
users = rawDocumentDemoDB.GetCollection("users");
PrintAllUsers(users);
}
private void StartRequest()
{
server.RequestStart(rawDocumentDemoDB);
}
private void StopRequest()
{
server.RequestDone();
}
private void PrintAllUsers(MongoCollection<BsonDocument> users)
{
Console.WriteLine(string.Format("There are currently {0} Users", users.Count()));
var savedUsers = users.FindAll();
foreach (var savedUser in savedUsers)
{
Console.WriteLine(string.Format("ID : {0}, FirstName : {1}, LastName : {2}, Age : {3}, CreatedDate: {4}",
savedUser["_id"], savedUser["firstname"].AsString, savedUser["lastname"].AsString,
savedUser["age"].AsInt32, savedUser["createdate"].AsDateTime));
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I currently hold the following qualifications (amongst others, I also studied Music Technology and Electronics, for my sins)
- MSc (Passed with distinctions), in Information Technology for E-Commerce
- BSc Hons (1st class) in Computer Science & Artificial Intelligence
Both of these at Sussex University UK.
Award(s)
I am lucky enough to have won a few awards for Zany Crazy code articles over the years
- Microsoft C# MVP 2016
- Codeproject MVP 2016
- Microsoft C# MVP 2015
- Codeproject MVP 2015
- Microsoft C# MVP 2014
- Codeproject MVP 2014
- Microsoft C# MVP 2013
- Codeproject MVP 2013
- Microsoft C# MVP 2012
- Codeproject MVP 2012
- Microsoft C# MVP 2011
- Codeproject MVP 2011
- Microsoft C# MVP 2010
- Codeproject MVP 2010
- Microsoft C# MVP 2009
- Codeproject MVP 2009
- Microsoft C# MVP 2008
- Codeproject MVP 2008
- And numerous codeproject awards which you can see over at my blog