sql >> Databáze >  >> NoSQL >> MongoDB

dotaz mongodb bez názvu pole

MongoDB bohužel nepodporuje žádnou metodu dotazování všech polí s konkrétní hodnotou. Existuje existující lístek Jira požadující toto vylepšení:https://jira.mongodb.org/browse/SERVER-1248 . Neváhejte tento tiket komentovat, hlasovat nebo sledovat.

Mezitím je obvyklým způsobem, jak se to řeší, změnit schéma MongoDB. Například byste změnili své stávající schéma:

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

A můžete to strukturovat nějak takto:

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

Jakmile to uděláte, můžete provést následující dotaz a najít všechny požadované dokumenty:

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

Všimněte si, že toto schéma vám umožňuje indexovat pole 'tags.cid' a 'tags.value', což vaše původní schéma neumožňuje.

Doufám, že to pomůže.

-William



  1. Seskupení MongoDB podle hodnot v poli pole

  2. MongoDB Analytics Series:SlamData – Spouštějte SQL a sestavujte sestavy přímo na MongoDB

  3. Zakažte transparentní obrovské stránky z Kubernetes

  4. Importujte data CSV jako pole v MongoDB pomocí mongoimport