Předpokládám:
{
g: [
{ _id: ObjectId(), property: '' },
// next
]
}
Typ struktury pro tuto otázku.
Normálně ne. _id s jsou jedinečné identifikátory pro entity. Jako takové, pokud chcete přidat _id v objektu vnořeného dokumentu, pak jste možná svá data nenormalizovali příliš dobře a mohlo by to být známkou zásadní chyby v návrhu schématu.
Dílčí dokumenty jsou navrženy tak, aby obsahovaly opakující se data pro daný dokument, tj. adresy nebo uživatele nebo tak něco.
To znamená _id není vždy špatné přidat. Vezměte si příklad, který jsem právě uvedl s adresami. Představte si, že byste měli systém nákupního košíku a (z nějakého důvodu) jste nereplikovali adresu do dokumentu objednávky, pak byste použili _id nebo nějaký jiný identifikátor pro získání tohoto dílčího dokumentu.
Musíte také vzít v úvahu propojení dokumentů. Pokud toto _id popisuje jiný dokument a vlastnosti jsou vlastní atributy pro tento dokument ve vztahu k tomuto propojenému dokumentu, pak je to také v pořádku.
ObjectId je stále poměrně velké, takže je třeba vzít v úvahu menší, méně unikátní id nebo nepoužívat _id vůbec pro dílčí dokumenty.
U indexů to ve skutečnosti nefunguje jinak než standardní _id pole v dokumentu samotném a jedinečný index napříč polem by měl fungovat v celé kolekci (závisí na scénáři, otestujte své dotazy).
Poznámka:MongoDB nepřidá _id na dílčí dokumenty pro vás.