Les
données sont le nerf de la guerre du web, des médias sociaux et du
« cloud ». LinkedIn utilise MySQL, Dropbox utilise Amazon
S3. Récemment, Twitter à changé sa base de données MySQL pour
Cassandra, une solution développée par Facebook qu’il a abandonné
au profit de HBase.
La
représentation des données et leurs accessibilités sont le cœur,
la structure et l’architecture de l’application. Ces besoins
grandissant ont donnés naissances à de nouvelles bases de données.
MongoDB, créée en 2007, en est une parmi ceux-ci.
C’est
une base de données « Document-oriented ». Elle n’est
donc pas une base de données relationnelle traditionnelle comme
Oracle ou SqlServer. Elle fait plutôt partie de la catégorie des
« NoSQL », c’est-à-dire, qu’elle n’utilise pas le
modèle SQL comme moteur. Le « NoSQL », présent depuis
1998, est un concept qui s’installe progressivement comme une
alternative aux solutions de BD.
MongoDB
est sous une licence de distribution publique, ce qui nous permet de
l’utiliser gratuitement. L’entreposage des données est dans un
format dérivé à JSON appelé BSON, ce qui lui ajoute de la
flexibilité. Des géants de l’industrie comme SAP, Craigslist et
Foursquare l’ont déjà intégré à leurs produits.
Plusieurs
langages sont supportés tel que: C, C++, Java, Javascript, .NET,
Node.JS, PHP, Perl et elle s’installe sur la majorité des
platformes : Windows, OS X, Linux et Solaris.
MongoDB
ce veut une solution légère, simple, rapide et robuste pour un
grand volume de données. Accessible par une invite système (shell),
des tierces parties ont développés des logiciels à interface
graphique tel que MongoVue ou MongoExplorer pour en facilité
l’accès.
Voici un exemple en C# provenant du
site de mongoDB :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
namespace ConsoleApplication1
{
public class Entity
{
public ObjectId Id { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
var connectionString = "mongodb://localhost/?safe=true";
var server = MongoServer.Create(connectionString);
var database = server.GetDatabase("test");
var collection = database.GetCollection<Entity>("entities");
var entity = new Entity { Name = "Tom" };
collection.Insert(entity);
var id = entity.Id;
var query = Query.EQ("_id", id);
entity = collection.FindOne(query);
entity.Name = "Dick";
collection.Save(entity);
var update = Update.Set("Name", "Harry");
collection.Update(query, update);
collection.Remove(query);
}
}
}
Aucun commentaire:
Publier un commentaire