Tipo map, Crítica/sugestão | Fórum | School of Net

Deseja poder participar de nosso fórum e tirar todas as suas dúvidas?
Clique aqui e assine nosso plano de acesso ilimitado. Saiba mais.

por Augusto César

4 meses atrás Augusto César

Tipo map, Crítica/sugestão

Meu esquema: ``` var userSchema = new Schema({ name: { type: String, require: true }, email: { type: String, require: true }, password: { type: String, require: true }, role: { type: String, require: true }, status: { type: Boolean, default: true }, permissions: { type: String, default: "all" }, add_date: { type: Date, default: Date.now }, _clinic_ids: { type: Map, of: Boolean } }); ``` Esta gravando blz! ``` "_id" : ObjectId("5e25c09149f0e101bc996096"), "status" : true, "permissions" : "all", "name" : "Francisco Valdêncio", "email" : "[email protected]", "password" : "$2a$10$6PBNlCIKTZa6FB0OBai0uepjs.UUjgC0eQ6PSncqeMUPdX32foZQu", "role" : "admin", "_clinic_ids" : { "5e274bb4a3052c1adc7a7582" : true }, "add_date" : ISODate("2020-01-20T15:00:33.332Z"), "__v" : 0 ``` O problema é quando tento fazer uma consulta para retornar todos os documentos que tem id === chave do meu "MAP" (_clinic_ids). Veja: ``` router.get('/', auth.authenticate(), function (req, res) { var User = require('.././models/user'); User.findById(req.user.uid, function (err, _user) { var _clinic_ids = []; for (_clinic_id in _user._clinic_ids) { //console.log(_clinic_id) //if (_clinic_ids.indexOf(_clinic_id) == -1) _clinic_ids.push(ObjectId(_clinic_id)); } return res.send(_user._clinic_ids) //console.log(_clinic_ids) Clinic.find({ _id: { $in: _clinic_ids } }, function (err, clinics) { res.send(clinics); }) }) }); ``` Como faço? Minha Crítica: O curso é bom, mas deveria abordar consultas complexas. Obrigado

4 Respostas