MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Rufen Sie Daten von mongodb mit dem C#-Treiber ab

Ich nehme an, Sie müssen nur Ihre Blog-ID mit BsonId markieren (und geben Sie die ID selbst ein) Attribut:

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

    public String Title{get;set;}
}

Und alles sollte in Ordnung sein. Das Problem bestand darin, dass Sie nicht markiert haben, welches Feld Mongodb _id und das vom Treiber generierte _id-Feld mit dem Typ ObjectId sein wird. Und wenn der Treiber versucht, es zurückzudeserialisieren, kann er ObjectId nicht in String konvertieren.

Vollständiges Beispiel:

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();