String (Texto)
Última atualização: 2026-10-09
String (Texto)
String é o tipo de campo mais comum do MongoDB, armazenando texto UTF-8. Faça correspondência exata com `$eq` ou por padrão com `$regex`; a busca de texto completo precisa de um índice text mais `$text`. Armazenar números ou datas como strings torna consultas por faixa e ordenações lexicográficas em vez de numéricas ('9' ordena depois de '10'), quebrando resultados silenciosamente.
| Categoria | Tipos BSON |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ name: "apple" }
{ name: { $regex: "^app" } }
db.articles.find({ $text: { $search: "mongodb" } })
Retorno:O próprio valor de string; as consultas retornam documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// String: busca por regex e texto completo
use shop
db.users.find({ email: { $regex: '@example\\.com$' } })
db.articles.find({ $text: { $search: 'mongodb indexing' } })
Saída:
// Usuários cujo email termina com @example.com, mais artigos que correspondem a mongodb/indexing
📌 Notas
- Armazenado como UTF-8; chaves de índice têm um limite de ~1KB
- Nunca armazene números como strings — as ordenações ficarão erradas
- Comparações de string diferenciam maiúsculas de minúsculas
- $regex sem âncora não pode usar índices e varre a coleção
🏷️ Tags Relacionados
💡 Casos Relacionados
Excluindo documentos e primeiros passos com o Node.js
Modelos do Mongoose e projeto de esquemas
Validação de dados e middleware do Mongoose
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQuando usar String vs ObjectId?
AUse String para identificadores de negócio (IDs externos, números de pedido); ObjectId quando quiser ids únicos automáticos e ordenáveis por tempo.
QPosso indexar campos string?
ASim. Índices regulares para igualdade/faixa e índices text para busca de texto completo.
QPor que '9' é maior que '10'?
AStrings comparam caractere por caractere; '9' tem um code point maior que '1', então '9' ordena depois de '10'.