Leitura e filtros
Busque documentos por igualdade, _id, campos únicos e caminhos aninhados.
Leitura e filtros
findOne()
Retorna o primeiro documento que corresponde ao filtro informado.
const member = await database.member.findOne({
email: "ada@example.com",
});Se o filtro usar um campo marcado como unique, o Tile pode aproveitar leitura indexada quando o adapter oferecer essa otimização.
find()
Retorna todos os documentos que correspondem ao filtro.
const verifiedMembers = await database.member.find({
verified: true,
});Sem filtro, retorna todos os documentos da collection:
const allMembers = await database.member.find();Filtros por dot-path
Objetos aninhados podem ser consultados por caminhos com ponto:
const member = await database.member.findOne({
"profile.email": "ada@example.com",
});findOneByID() e findOneById()
Use essas APIs quando você já tem o _id do documento:
const member = await database.member.findOneByID("68526dba05db8ec36dcb33d8");
const sameMember = await database.member.findOneById("68526dba05db8ec36dcb33d8");countDocuments()
Conta documentos com ou sem filtro:
const total = await database.member.countDocuments();
const verifiedTotal = await database.member.countDocuments({ verified: true });Limitações de filtro
Os filtros funcionam por igualdade simples. Isso significa que não existem operadores de query como $gt, $lt, $in, $or, regex ou comparações profundas nativas.
Sobre performance em adapters remotos
Com MongoDB e Mongoose, o melhor caso acontece em findOne() usando campo único. Já operações como find() e countDocuments() continuam seguindo a semântica do Tile e podem depender da listagem da collection pelo adapter.