Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

couchdb có thể làm vòng lặp không

Tôi nghĩ rằng tôi hiểu những gì bạn đang hỏi. Câu trả lời khá đơn giản với Map / Reduce.

Giả sử bạn có những tài liệu về người sau:

{
   "name": "Person A",
   "interests" [ "computers", "fishing", "sports" ]
}
{
   "name": "Person B",
   "interests" [ "computers", "gaming" ]
}
{
   "name": "Person C",
   "interests" [ "hiking", "sports" ]
}
{
   "name": "Person D",
   "interests" [ "gaming" ]
}

Bạn có thể muốn gửi khóa của mình dưới dạng sở thích, với giá trị là tên của người đó (hoặc _id ).

function (doc) {
   for (var x = 0, len = doc.interests.length; x < len; x++) {
      emit(doc.interests[x], doc..name);
   }
}

Kết quả xem của bạn sẽ giống như sau:

  • máy tính => Người A
  • máy tính => Người B
  • câu cá => Người A
  • chơi game => Người B
  • chơi game => Người D
  • đi bộ đường dài => Người C
  • thể thao => Người A
  • thể thao => Người C

Để có được danh sách những người quan tâm đến máy tính, bạn có thể chỉ cần gửi key="computers" như một phần của chuỗi truy vấn.

Nếu bạn muốn thêm chức năng giảm vào bản đồ của mình, bạn có thể chỉ cần sử dụng _count (phím tắt để sử dụng hàm rút gọn đã biên dịch) và bạn có thể truy xuất số lượng tất cả những người có mối quan tâm cụ thể, thậm chí bạn có thể sử dụng phím tắt đó để giới hạn những mối quan tâm mà bạn truy vấn để xây dựng mối quan hệ của mình.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thoát ký tự dấu hai chấm ':' trong các truy vấn JPA

  2. Làm thế nào chúng ta có thể khác nhau giữa LEFT OUTER JOIN và Left Join

  3. LAST_INSERT_ID () trả về nhiều hàng 0?

  4. danh mục php, cây danh mục phụ

  5. Làm thế nào để xoay? Làm thế nào để chuyển đổi nhiều hàng thành một hàng có nhiều cột?