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

Truy vấn MongoDB với toán tử $or và định dạng kết quả pretty()

Toán tử $or thực hiện phép OR logic trên mảng các biểu thức, chọn tài liệu thoả mãn ít nhất một điều kiện. Kết hợp với pretty() để hiển thị kết quả dễ đọc.

Dữ liệu mẫu

> db.demo304.insertOne({"StudentName":"Chris","StudentAge":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4ea3ccf8647eb59e562034") }
> db.demo304.insertOne({"StudentName":"David","StudentAge":22});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4ea3d7f8647eb59e562035") }
> db.demo304.insertOne({"StudentName":"Mike","StudentAge":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4ea3e2f8647eb59e562036") }
> db.demo304.insertOne({"StudentName":"Carol","StudentAge":22});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4ea3eef8647eb59e562037") }

Xem tất cả

> db.demo304.find();
{ "_id" : ObjectId("5e4ea3ccf8647eb59e562034"), "StudentName" : "Chris", "StudentAge" : 23 }
{ "_id" : ObjectId("5e4ea3d7f8647eb59e562035"), "StudentName" : "David", "StudentAge" : 22 }
{ "_id" : ObjectId("5e4ea3e2f8647eb59e562036"), "StudentName" : "Mike", "StudentAge" : 24 }
{ "_id" : ObjectId("5e4ea3eef8647eb59e562037"), "StudentName" : "Carol", "StudentAge" : 22 }

Truy vấn: StudentName = "David" HOẶC StudentAge = 22

> db.demo304.find({ $or: [{ "StudentName": "David" }, { "StudentAge":22} ] } ).pretty();

Kết quả

{
    "_id" : ObjectId("5e4ea3d7f8647eb59e562035"),
    "StudentName" : "David",
    "StudentAge" : 22
}
{
    "_id" : ObjectId("5e4ea3eef8647eb59e562037"),
    "StudentName" : "Carol",
    "StudentAge" : 22
}

Lưu ý: Tài liệu của David thoả mãn cả hai điều kiện nhưng chỉ xuất hiện một lần. $or rất hữu ích khi cần tìm kiếm theo nhiều tiêu chí thay thế cho nhau. Đối với truy vấn phức tạp, có thể lồng $or bên trong $and hoặc ngược lại.