sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB transaktion

Det kan du inte.
Det enda sättet att göra detta är att slå in someotherRelationaldb.Save(object); i ett försök catch, och på catch, gör mongoCollection.Remove

Du skulle förmodligen behöva en känd identifieringsegenskap på object och kan sedan göra något som:

mongoCollection.Remove(Query.EQ("_id", object.Id));

Så, ganska stökigt, skulle din Spara-metod se ut lite som:

private void Save(object)
{
   mongoCollection.Save(object);

   try
   {
      someotherRelationaldb.Save(object);
   }
   catch
   {
      mongoCollection.Remove(Query.EQ("_id", object.Id));
   }
}

Ett annat sätt är att lagra en flaggegenskap på object som uppdateras efter den lyckade skrivningen till someOtherRelationaldb

Det här är inte direkt idealiskt heller, men du kan ändra din fråga så att den bara returnerar dokument där IsPersisted flaggan är sann.

Inget av dessa tillvägagångssätt kommer att spela bra i en hårt skuren miljö även om jag inte skulle tro.



  1. SQL RPAD()

  2. Kan inte ansluta till Mongo DB via Spark

  3. Stöder AWS DocumentDB att gå med i 3+ samlingar i en enda fråga?

  4. Hur importerar man dumpmapp till mongodb-databasen?