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

MongoDB:Jak najít dokument podle id uvnitř vnořeného dokumentu

Použijte tečkovou notaci:

Když pole obsahuje vložený dokument, dotaz může buď určit přesnou shodu na vloženém dokumentu, nebo určit shodu podle jednotlivých polí ve vloženém dokumentu pomocí tečkové notace.

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
})

Pokud potřebujete vypsat pouze tu část pole, kde máte své _id, musíte v projekci použít dolar

Poziční operátor $ omezuje obsah z výsledků dotazu tak, aby obsahoval pouze první prvek odpovídající dokumentu query.

a váš dotaz bude vypadat takto:

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
}, {
   "accounts.$.": 1
})

P.S. pokud potřebujete výstup jako ve vašich upravených otázkách, použijte toto:

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
 }, {
   accounts : 0
 })


  1. Může mongo přenést data pole?

  2. jarní data mongodb skupina podle

  3. Dotazování na vložené objekty v Mongoidu/rails 3 (Operátory nižší než, Min a řazení)

  4. seskupit podle dat v mongodb