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

Cách tạo stored procedure trong MongoDB

MongoDB lưu trữ hàm JavaScript trong collection hệ thống system.js để đóng vai trò như stored procedure.

Cú pháp

db.system.js.save({
  _id: "tenThuTuc",
  value: function(thamSo1, ..., thamSoN) {
    // các câu lệnh
    return ketQua;
  }
});

Ví dụ: Tạo thủ tục cộng hai số

> db.system.js.save({
  _id: "congHaiSo",
  value: function(a, b) {
    return a + b;
  }
});
WriteResult({ "nMatched": 0, "nUpserted": 1, "nModified": 0, "_id": "congHaiSo" })

Gọi thủ tục

> db.eval("return congHaiSo(100, 25)");
125

⚠️ Cảnh báo quan trọng: db.eval() đã bị deprecated từ MongoDB 3.0 và removed từ MongoDB 4.4. Cách hiện đại:

  • Xử lý logic ở application layer (Node.js, Python, Java...)
  • Dùng Aggregation Pipeline với $function (MongoDB 4.4+)
  • Dùng MongoDB Realm Functions cho serverless logic

Bài viết này chỉ mang tính tham khảo lịch sử.