sql >> Database teknologi >  >> NoSQL >> MongoDB

Find poster med felt i et indlejret dokument, når overordnede felter ikke kendes

For at søge efter en nøgle i indlejret dokument skal du gentage dokumentfelterne rekursivt, du kan gøre dette i JavaScript ved hjælp af $where metode i MongoDBNedenstående forespørgsel vil søge, om der findes et nøglenavn i et dokument og dets underdokumenter.

Jeg har tjekket dette med det eksempel, du har givet, og det fungerer helt fint.

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. Hvordan man validerer i Mongoose et array og samtidig dets elementer

  2. Mongoose:Sortér alfabetisk

  3. Brug af redis med node.js (express)

  4. MongoDB Aggregation Operators for returnering af datodele