tengo estos datos:
[ { contacts: [ [Object] ], _id: 614a1301a926d73628d791fe, username: 'erick', socketId: 'OB8uqmHnsGPKC3gcAAAB' }, { contacts: [ contacts: [ [Object] ], _id: 614a1301a926d73628d791fe, username: 'erick', socketId: 'OB8uqmHnsGPKC3gcAAAB' ], _id: 614a1306a926d73628d79204, username: 'tachancka', socketId: 'cN333_zn8r48K_0tAAAB' } ]Y necesito encontrar el nombre de usuario de 'erick' dentro de los contactos de 'tachancka'. He intentado varias formas de hacerlo, pero ninguna de ellas funcionó para mí, volviendo nulo.
Por ejemplo:
User.findOne({contacts: {$elemMatch:{'username': 'erick'}}})O:
User.findOne({'contacts.username': 'erick'})consulte la muestra aquí: https://mongoplayground.net/p/Np_MdrubPgT
puedes utilizar
db.User.find({ username: "tachancka", "contacts.username": "erick" })Cuando tiene una matriz de objetos y si desea hacer coincidir todo el campo dentro del objeto, usamos $ elemMatch, aquí en su caso siento que el nombre de usuario no es parte de la matriz de contactos, por lo tanto, no usará $ elemMatch