Ich versuche, einen universellen Web-API-Controller zu schreiben, mit dem ich ein JSON-Dokument ohne Angabe eines C# -Typs in einer Sammlung speichern kann. Ich habe versucht, den Code auf das Wesentliche zu verdichten:MongoDB C# - Wie speichere ich ein beliebiges JSON-Dokument als dynamischen Typ?
public class PassThroughController : ApiController
{
[Route("api/mongodb/{collection}")]
public void Post(string collection, dynamic document)
{
const string connectionString = "mongodb://localhost";
var client = new MongoClient(connectionString);
var db = client.GetServer().GetDatabase("SampleDb");
var mongoCollection = db.GetCollection(collection);
mongoCollection.Save(document,
new MongoInsertOptions
{
WriteConcern = WriteConcern.Acknowledged
});
}
}
Ich versuche, ein einfaches Dokument zu schreiben:
{ id: "2112", name: "Rush" }
Aber egal, was ich zu dem Verfahren senden, erhalte ich eine Fehler ähnlich dem: "Speichern kann nur mit Dokumenten verwendet werden, die eine ID haben."
Wir haben versucht, eine Reihe von verschiedenen Eigenschaften für ID (ID, ID, _ID), aber sie alle führen zu einem ähnlichen Problem.
Irgendwelche Ideen?
Dank