Realmente atrapado con algo que me parece que debería ser fácil
Básicamente, lo que quiero hacer es convertir la cadena de un objectId en un objectId y hacer coincidir eso, ¡pero no puedo encontrar la manera de hacerlo...!
Para ser claros , no puedo usar { x: ObjectId(someObjectId) } porque quiero serializar la consulta a JSON
Datos:
[{ "_id": { "$oid": "5f37eaaae4102600180078a8" }, "Details": "Something A", "App": { "$oid": "5f37cec069106932d4710ea6" } },{ "_id": { "$oid": "5f3860f10a9db00018f2e2e3" }, "Details": "Something B", "App": { "$oid": "5f37cec069106932d4710ea6" } },{ "_id": { "$oid": "5f3908a7db8fd70018b19942" }, "Details": "Something C", "App": { "$oid": "5f37cec069106932d4710ea7" } },{ "_id": { "$oid": "5f390961db8fd70018b19945" }, "Details": "Something D", "App": { "$oid": "5f37cec069106932d4710ea8" } } ]Y consulta con algo como:
[ { '$match': { 'App': { '$eq': { '$toObjectId': '5f37cec069106932d4710ea8' } } } } ]el resultado obviamente es:
{ "_id": { "$oid": "5f390961db8fd70018b19945" }, "Details": "Something D", "App": { "$oid": "5f37cec069106932d4710ea8" } }Puedes hacerlo así:
db.collection.aggregate([ { "$match": { "$expr": { "$eq": [ "$App", { "$toObjectId": "5f37cec069106932d4710ea8" } ] } } } ])