MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

đẩy giá trị mới vào mảng bên trong mongodb - mongodb / php

Vì cả hai câu trả lời này đều không thực sự cho bạn biết điều gì sai ở đây ...

$conn = new Mongo();
$q = $conn->server->gameQueue;
$id = new MongoId("4d0b9c7a8b012fe287547157");
$q->update(array("_id"=>$id),array('$push' => array("done_by","2")));

Đã xảy ra sự cố với $ push của bạn tuyên bố, bạn không đẩy "done_by" với giá trị là "2" mà bạn thực sự đang gửi "done_by" "2" ...

Đây là vấn đề ...

array('$push' => array("done_by","2"))

Điều này phải có một => không phải là ,

array('$push' => array("done_by" => "2"))

Tuy nhiên, lưu ý rằng mỗi khi bạn chạy điều này, nó sẽ chèn một "2" khác nếu bạn muốn MongoDB chỉ chèn "2" nếu nó chưa tồn tại trong "done_by" thì bạn nên sử dụng $ addToSet ...

array('$addToSet' => array("done_by" => "2"))

Câu lệnh này sẽ không thêm 2 lần mọi lúc, chỉ lần đầu tiên.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mô hình hóa dữ liệu đa ngôn ngữ trên MongoDB

  2. Cách kiểm tra kết nối với mongodb

  3. MongoDB ::ID Mongo có phải là duy nhất trên các bộ sưu tập không?

  4. Làm cách nào để đổi tên các trường khi thực hiện tìm kiếm / chiếu trong MongoDB?

  5. Làm cách nào để liệt kê tất cả cơ sở dữ liệu MongoDB trong Node.js?