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

truy vấn mongodb không có tên trường

Thật không may, MongoDB không hỗ trợ bất kỳ phương pháp truy vấn tất cả các trường với một giá trị cụ thể. Hiện có một vé Jira yêu cầu tính năng nâng cao này:https://jira.mongodb.org/browse/SERVER-1248. Hãy bình luận, bình chọn hoặc theo dõi phiếu đó.

Trong khi đó, cách xử lý thông thường là thay đổi lược đồ MongoDB. Đối với ví dụ của bạn, bạn sẽ thay đổi giản đồ hiện có của mình:

{"123": "apple", "217": "pear", "179": "orange"} 
{"831": "pear", "189": "grapes"} 

Và bạn có thể cấu trúc nó như thế này:

 { tags: [
        { cid: "123", value: "apple" },
        { cid: "217", value: "pear" },
        { cid: "179", value: "orange" },
      ]
    }
   { tags: [
        { cid: "831", value: "pear" },
        { cid: "189", value: "grapes" },
      ]
    }

Sau khi hoàn thành việc này, bạn có thể thực hiện truy vấn follwing để tìm tất cả các tài liệu mong muốn:

 db.docs.find( {'tags.value': "apple" } )

Lưu ý rằng lược đồ này cho phép bạn lập chỉ mục các trường 'tags.cid' và 'tags.value' mà lược đồ ban đầu của bạn không lập chỉ mục.

Tôi hy vọng điều này sẽ hữu ích.

-William



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để san phẳng một tài liệu con thành cấp gốc trong MongoDB?

  2. Tôi nên chọn gì:MongoDB / Cassandra / Redis / CouchDB?

  3. SQL NULLIF () Giải thích

  4. mongodb tổng hợp php

  5. Đổi tên một trường trong bộ sưu tập MongoDB