sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur hittar man ett underfält i Mongo utan att känna till det överordnade fältet?

Denna aggregeringsfråga kan göra det:

var loved_by_mom = "Loved by mom";

db.loved.aggregate( [
        { $addFields: { fieldNameValues: { $objectToArray: "$$ROOT" } } },
        { $unwind: "$fieldNameValues" },
        { $addFields: { fldType: { $type: "$fieldNameValues.v" } } },
        { $match: { fldType: "object" } },
        { $addFields: { objs: { $objectToArray: "$fieldNameValues.v" } } },
        { $unwind: "$objs" },
        { $match: { "objs.k": loved_by_mom } }, 
        { $project: { fieldNameValues: 0, fldType: 0, objs: 0 } }
] )


  1. Bästa sättet att läsa och uppdatera mongodb-dokument med pymongo

  2. jag använder node.js löfte för att validera att antingen användarnamn finns i db eller inte

  3. Fråga specifika fält av mongoDB med node.js

  4. $and query returnerar inget resultat