公式C#ドライバー を使用してdocument
をMongoDBから削除するより良い方法がある場合、誰かが私に教えてもらえますか?
_var query = Query.EQ("_id", a.Id);
database.GetCollection<Animal>("Animal").Remove(query);
_
このコードは機能しますが、私には作業が多すぎるようです。たとえば、「保存」コマンドはインスタンスを取得して更新します。 -Remove(item)
のようなものが欲しい。
それがあなたのやり方です。私はあなたがこれを知っていると確信していますが、1行に配置したい場合は、それを組み合わせてクエリ変数を定義する必要がないようにすることができます。
collection.Remove(Query.EQ("_id", a.Id));
[id]が文字列の場合、ObjectIdインスタンスを明示的に使用する必要があります。
var query = Query.EQ("_id", ObjectId.Parse(id));
document
からcollection
を削除しますC#MongoDB Driver(v2.0以降)-
collection.DeleteOne(a => a.Id==id);
または
await collection.DeleteOneAsync(a => a.Id==id);
ASP.NET Core MVCコントローラーのアクションは、Idを文字列パラメーターとして受け入れます。次に、それを解析し、その結果をDeleteOne()ステートメントで使用します。
[HttpPost]
public IActionResult Delete(string id)
{
ObjectId objectId = ObjectId.Parse(id);
DbContext.Users.DeleteOne(x => x.Id == objectId);
return null;
}