MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak uzyskać wszystkie klucze kolekcji zawierające pewną wartość (String) w mongodb?

Możesz to zrobić, zmieniając kształt danych w źródle danych za pomocą objectToArray

Graj

db.collection.aggregate([
  {
    "$project": {
      "data": {
        "$objectToArray": "$$ROOT"
      }
    }
  },
  {
    $unwind: "$data"
  },
  {
    "$match": {
      "data.v": {
        $regex: "hello"
      }
    }
  }
])

Kolejna zaawansowana wersja tutaj Przywraca dane z powrotem

db.collection.aggregate([
  {
    "$project": {
      "data": {
        "$objectToArray": "$$ROOT"
      }
    }
  },
  {
    $unwind: "$data"
  },
  {
    "$match": {
      "data.v": {
        $regex: "hello"
      }
    }
  },
  {
    $group: {//Grouping back and restructuring the data so that objectToArray will bring the original format easily.
      "_id": "$_id",
      data: {
        "$addToSet": {
          k: "$data.k",
          v: "$data.v"
        }
      }
    }
  },
  {
    "$project": {
      "data": {
        "$arrayToObject": "$data"
      }
    }
  }
])

Zapoznaj się z dokumentacją arrayToObject i objectToArray , a następnie $regex




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zaimportować format pliku .bson na mongodb

  2. Tworzenie kolekcji ograniczonej mongodb za pomocą c# api

  3. Najlepsze praktyki MongoDB dotyczące odwoływania się

  4. Błąd uwierzytelniania żagli-mongo w żaglach 0,10

  5. Jak ustawić unikalne ograniczenie dla pola w dokumencie zagnieżdżonym w tablicy?