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

Jak vytvořit dotaz v této struktuře vnořených dokumentů (MongoDB)?

Několikrát jsem na to odpověděl ohledně vyzvednutí dílčích dokumentů pouze ze sbírky mongo zde a zde

Jednoduše v současné době neexistuje způsob, jak to udělat. Toto je chování filtrování víceúrovňového vloženého dokumentu, normálně by odpovídající filtr vrátil celý dokument, nikoli podmnožiny.

V mongu již existují dva nevyřešené problémy související s tímto pozičním ($) operátorem v polích pro návrat specifikátoru a Schopnost využívat data vnořeného dokumentu, jehož obsah byl použit k uspokojení dotazu pomocí operátoru $ . (Pokud tuto funkci opravdu potřebujete, přihlaste se, abyste mohli hlasovat.)

A vaše alternativní schéma zde také není užitečné.

takže musíte uložit každou funkci do samostatného dokumentu, jako je tento, aby fungovala tak, jak jste chtěli

funkce 1

{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 1',
'some_field' : 'zzz'
}

funkce 2

{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 2',
'some_field' : 'zzz'
}

a dotazování

db.features.find({'_id':someobjectid})

vrátí pouze konkrétní funkci




  1. Jak mohu seřadit sbírku Meteor podle času vložení?

  2. Vložený dokument vs reference v designovém modelu mongoose?

  3. Push Operations v MongoDB

  4. Přidání Mongoose vyprší platnost atributu pro konkrétní pole