数日前に、mongodb 4.0がリリースされたので、早速mongodb 4.0のトランザクションを試してみました。
うきうきしながらC#でコードを書いてみると、うきうきした気持ちとは裏腹に、トランザクションをrollbackさせることが出来ませんでした。
RDBMSの気分でmongodb 4.0でトランザクションを使えるのかなと思ったのですが、
mongodb 4.0のトランザクションはRDBMSとは考え方が違うのですか?
ちなみに、私は今日からmongodbを初めた、超初心者です
実際に動かしたコード
C#
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 var client = new MongoClient(); 6 7 var session = client.StartSession(); 8 session.StartTransaction(); 9 10 var db = client.GetDatabase("mongo-40"); 11 var bookCollection = db.GetCollection<Book>("book"); 12 13 bookCollection.InsertOne(new Book() 14 { 15 Id = ObjectId.GenerateNewId(), 16 IsbnCode = "1234567890", 17 Title = "あいうえお", 18 Author = "redhat98" 19 }); 20 21 session.AbortTransaction(); // ここでロールバックされるハズ 22// session.CommitTransaction(); //ここでコミットされるハズ 23 } 24 } 25 26 public class Book 27 { 28 public ObjectId Id { get; set; } 29 public string IsbnCode { get; set; } 30 public string Title { get; set; } 31 public string Author { get; set; } 32 } 33
mongodb 4.0のインストール方法は次を参照
Install MongoDB Community Edition on Ubuntu
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。