2011-12-06 18 views
6

Tôi có một sql:Làm thế nào để sử dụng tính riêng biệt trong pymongo?

select field2, count(distinct field1) from table group by field2; 

Làm thế nào để đạt được điều này sql trong pymongo?

+0

Bắt đầu bằng cách đọc tài liệu MongoDB. Bạn không thể chuyển đổi một cách mù quáng các câu lệnh SQL thành các truy vấn MongoDB cũng như bạn không mong đợi SO làm điều đó cho bạn. –

Trả lời

2

tôi đã tìm thấy khu vực này là rất hữu ích khi làm việc trên thực hiện chuyển đổi từ SQL để Mongo SQL to Mongo Mapping Chart

Trong trường hợp này bạn sẽ được trông như một cái gì đó tương tự như:

db.users.group({key: {age: true}, 
initial: {count: 0}, 
reduce: function (obj, prev) { prev.count++;} }) 

Vì bạn có logic phức tạp hơn một chút ở đây bạn cần sử dụng hàm reduce. Thành thật mà nói, bạn nên đọc thêm một chút về điều này để hiểu đầy đủ chính xác những gì đang xảy ra ở đây. Map Reduce

4

Bạn có thể thực hiện các loại truy vấn này bằng trình điều khiển pymongo bằng cách sử dụng chức năng .group().

db.table.group(["field1"], {}, {"count":0},"function(o, p){p.count++}")

Điều này sẽ nhóm lại với nhau giá trị khác biệt của "field1" và tăng số đếm để theo dõi số lần xuất hiện của mỗi người.

Các vấn đề liên quan