Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ใช้ผลลัพธ์จาก MongoDB ใน Shell Script

เก็บผลลัพธ์ Query ไว้ในตัวแปร JavaScript ใน Mongo Shell

MongoDB Shell เป็นสภาพแวดล้อม JavaScript ทำให้สามารถกำหนดผลลัพธ์ของ findOne() หรือ find() ลงในตัวแปร แล้วนำไปใช้ต่อได้

ตัวอย่างข้อมูล

> db.useResultDemo.insertOne({"StudentFirstName":"Robert"});

เก็บผลลัพธ์ลงตัวแปร

> var studentName = db.useResultDemo.findOne({}, {_id: 0});
> studentName

ผลลัพธ์

{ "StudentFirstName" : "Robert" }

การประยุกต์ใช้

// 1. ใช้ค่าในตัวแปรต่อ
var doc = db.users.findOne({ name: "John" });
if (doc) {
    print("Found: " + doc.email);
    db.orders.updateMany({ userId: doc._id }, { $set: { status: "notified" } });
}

// 2. วนลูปประมวลผล
var cursor = db.products.find({ price: { $gt: 100 } });
while (cursor.hasNext()) {
    var product = cursor.next();
    printjson(product.name);
}

// 3. แปลง Cursor เป็น Array (ระวังหน่วยความจำถ้าข้อมูลเยอะ)
var allProducts = db.products.find().toArray();

คำเตือน

  • toArray() จะโหลดข้อมูลทั้งหมดเข้าหน่วยความจำ - ใช้กับข้อมูลเล็กเท่านั้น
  • สำหรับข้อมูลเยอะ ใช้ cursor.forEach() หรือประมวลผลทีละ Batch
  • ตัวแปรใน Shell มีชีวิตอยู่ภายใน Session นั้นๆ เท่านั้น