MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Récupérer des données de mongodb à l'aide du pilote C #

Je suppose que vous avez juste besoin de marquer l'identifiant de votre blog avec BsonId (et insérez l'identifiant vous-même) attribut :

public class Blog
{
    [BsonId]
    public String Id {get;set;}

    public String Title{get;set;}
}

Et tout devrait bien se passer. Le problème était dû au fait que vous n'aviez pas marqué quel champ serait Mongodb _id et le champ _id généré par le pilote avec le type ObjectId. Et lorsque le pilote essaie de le désérialiser, il ne peut pas convertir ObjectId en String.

Exemple complet :

MongoCollection collection = md.GetCollection<Blog>("blog");
var blog = new Blog(){Id = ObjectId.GenerateNewId().ToString(), 
                      Title = "First Blog"};
collection .Insert(blog);

MongoCursor<Blog> cursor = collection.FindAllAs<Blog>();
cursor.SetLimit(5);

var list = cursor.ToList();