MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

array com valores únicos sobre todos os documentos de uma coleção


Pode ser possível, se você estiver disposto a armazenar os valores exclusivos em uma coleção diferente . Ficaria estruturado assim:
{ "uniquestring" : "a", "account" : 111 }
{ "uniquestring" : "b", "account" : 111 }
{ "uniquestring" : "c", "account" : 111 }
{ "uniquestring" : "d", "account" : 222 }
{ "uniquestring" : "e", "account" : 222 }
{ "uniquestring" : "f", "account" : 222 }

Não sou especialista em Mongoose, mas acredito que você possa definir Modelos para vincular coleções, com o campo conta aqui referenciando o campo _id da coleção de contas.

Agora, você pode impor a exclusividade com um índice direto:
db.uniquestrings.createIndex( { "uniquestring" : 1 } , { unique : true } )

Agora, seu aplicativo terá um pouco mais de trabalho para salvar os dados (ele precisa salvar na coleção de strings exclusivas, bem como na coleção de contas), mas agora você tem a imposição no nível do banco de dados da exclusividade dessas strings, em o banco de dados.

As edições PS são bem-vindas por qualquer pessoa com conhecimento mais detalhado de como implementar e usar esses modelos no mangusto.