Pergunta

Eu tenho um aplicativo em que gostaria de usar um banco de dados NoSQL, mas ainda quero fazer consultas de alcance em duas propriedades diferentes, por exemplo Selecione todas as entradas entre os tempos T1 e T2, onde o Noiselevel é menor que x. Por outro lado, eu gostaria de usar uma loja de valores NoSQL/Key, porque meus dados são muito escassos e diversos, e não quero criar novas tabelas para todos os novos dados do Datatype que eu posso encontrar.

Eu sei que você não pode usar vários filtros de desigualdade para o Google DataStore (fonte). Eu também sei que esse recurso está chegando (de acordo com isto).
Eu sei que isso também não é possível no Couchdb (fonte).

Acho que também entendo mais ou menos por que esse é o caso.

Agora, isso me faz pensar .. É esse o caso de todos os bancos de dados NoSQL? Outros sistemas NoSQL podem fazer consultas de alcance em duas propriedades diferentes?

Que tal, por exemplo, Mongo DB? Eu olhei na documentação, mas a única coisa que encontrei foi o seguinte snippet em seus docu:

Observe que qualquer um dos operadores nesta página pode ser combinado no mesmo documento de consulta. Por exemplo, para encontrar todo o documento em que J não é igual a 3 e K é maior que 10, você consulta assim:

db.things.find({j: {$ne: 3}, k: {$gt: 10} });

Então eles usam maiores e não iguais em duas propriedades diferentes. Eles não dizem nada sobre duas desigualdades ;-)

Qualquer entrada e iluminação são bem-vindas :-)

Foi útil?

Solução

Você tentou? Isso funciona bem para mim (encontra todas as linhas com k> 1 e k <3):

db.things.find({k:{$gt:1, $lt:3}});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top