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

Tìm bản ghi có trường trong tài liệu lồng nhau khi trường mẹ không được biết

Để tìm kiếm khóa trong tài liệu lồng nhau, bạn cần lặp lại đệ quy các trường tài liệu, bạn có thể thực hiện việc này trong JavaScript với sự trợ giúp của $ where trong MongoDBT Truy vấn dưới đây sẽ tìm kiếm xem tên khóa có tồn tại trong tài liệu và các tài liệu con của nó hay không.

Tôi đã kiểm tra điều này với ví dụ bạn đưa ra và nó đang hoạt động hoàn toàn tốt.

db.getCollection('test').find({ $where: function () {
    var search_key = "lev3_field2";

    function check_key(document) {
      return Object.keys(document).some(function(key) {
        if ( typeof(document[key]) == "object" ) {
            if ( key == search_key ) {
                return true;
            } else {
                return check_key(document[key]);
            }
        } else {
          return ( key == search_key );
        }
      });
    }
    return check_key(this);
  }}

);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb tổng hợp truy vấn trên các bản ghi cụ thể thay vì bộ sưu tập

  2. Làm cách nào để tìm nạp cơ sở dữ liệu drom bản ghi trong chế độ xem chỉnh sửa Trong Laravel?

  3. Tất cả các sự kiện mongoose là gì và chúng được ghi lại ở đâu?

  4. MongoDB - Chỉ mục văn bản đầy đủ - Tìm kiếm toàn văn bản - gốc

  5. Lỗi tham chiếu không được đưa ra từ lệnh gọi lại MongoDB