sql >> Base de Datos >  >> NoSQL >> MongoDB

Uso de la función MongoDB .findOne() con valor de documento anidado

Al comparar con una matriz, si especifica la consulta de esta manera:

{ exercises: { _id: exerciseID } }

MongoDB intenta hacer un coincidencia exacta en el documento . Entonces, en este caso, MongoDB solo coincidiría con documentos en los exercises matriz de la forma exacta { _id: ObjectId("...") } . Porque los documentos en los exercises tiene otros campos, esto nunca producirá una coincidencia, incluso si el _id son iguales.

Lo que desea hacer en su lugar es consultar un campo de los documentos en la matriz . El documento de consulta completo se vería así:

{
  user: user.id,
  "exercises._id": exerciseID
}