Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Truy vấn "Toggle" (đảo ngược) trong MongoDB?

Tìm document rồi dùng update để toggle giá trị boolean. Tạo collection:

> db.toggleDemo.insertOne({"CustomerName":"John Smith","CustomerAge":28,"isMarried":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc7be138f9e6ff3eb0ce43b") }
> db.toggleDemo.insertOne({"CustomerName":"David Miller","CustomerAge":25,"isMarried":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc7be2e8f9e6ff3eb0ce43c") }

Hiển thị tất cả:

> db.toggleDemo.find().pretty();

Kết quả:

{ "_id" : ObjectId("5cc7be138f9e6ff3eb0ce43b"), "CustomerName" : "John Smith", "CustomerAge" : 28, "isMarried" : true }
{ "_id" : ObjectId("5cc7be2e8f9e6ff3eb0ce43c"), "CustomerName" : "David Miller", "CustomerAge" : 25, "isMarried" : false }

Toggle giá trị isMarried của David Miller:

> var value = db.toggleDemo.findOne({CustomerName:"David Miller"});
> db.toggleDemo.update({CustomerName:"David Miller"}, {$set: {isMarried: !value.isMarried}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Kiểm tra lại:

> db.toggleDemo.find().pretty();

Kết quả (isMarried đã chuyển thành true):

{ "_id" : ObjectId("5cc7be138f9e6ff3eb0ce43b"), "CustomerName" : "John Smith", "CustomerAge" : 28, "isMarried" : true }
{ "_id" : ObjectId("5cc7be2e8f9e6ff3eb0ce43c"), "CustomerName" : "David Miller", "CustomerAge" : 25, "isMarried" : true }