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

mongodb php nhận các trường giá trị duy nhất

Trên SQL DBMS chuẩn, điều này sẽ được thực hiện với truy vấn sau:

SELECT type, count(*) as ct FROM table GROUP BY type ORDER BY ct;

trên mongodb, điều này sẽ được thực hiện bằng cách sử dụng hàm nhóm, mặc dù nó phức tạp hơn một chút:

db.collection.group(
           {key: { "type":true},
            reduce: function(obj,prev) { prev.count += 1; },
            initial: { count: 0 }
            });

Ở đây tôi yêu cầu db trả về các giá trị cho khóa "type" (do đó là "true") và đối với mỗi giá trị, hàm giảm đã cho sẽ được sử dụng để tổng hợp các bản ghi được tìm thấy. Ở đây tôi chỉ cập nhật số lần mỗi bản ghi xuất hiện. Nếu bạn chạy truy vấn này, bạn sẽ nhận được một thứ như sau:

[
    {
        "type" : "report",
        "count" : 5
    },
    {
        "type" : "memo",
        "count" : 15
    }
    {
        "type" : "research",
        "count" : 3
    }

]

Bạn sẽ nhận thấy điều này không được đặt hàng; ngay cả các tài liệu mongodb cũng nói rằng cách dễ nhất để đặt hàng là thực hiện ở phía máy khách.

Tài liệu liên quan có tại tại đây .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Làm thế nào để giải quyết DBRef ở phía máy khách?

  2. Mongo / Mongoose - Tổng hợp theo ngày

  3. Tôi có nên lưu trữ mã thông báo JWT trong redis không?

  4. Nhập dữ liệu vào các phiên bản MongoDB mới được tạo của bạn

  5. Quản trị viên Django và MongoDB, có thể không?