Come posso cercare i record filtraggio in un campo che ha un valore undefined
:Come abbinare il valore 'non definito' in MongoDB Aggregation Framework?
db.records.aggregate({
$match: {
myField: "undefined",
}
})
Come posso cercare i record filtraggio in un campo che ha un valore undefined
:Come abbinare il valore 'non definito' in MongoDB Aggregation Framework?
db.records.aggregate({
$match: {
myField: "undefined",
}
})
Se si desidera filtrare i documenti che hanno alcuni campi mancanti, utilizzare l'operatore $exists
.
Questo funziona sulla mia macchina:
> db.test.drop()
true
> db.test.insert({'Hello':'World!', 'myField':42})
> db.test.insert({'Hello again':'World!'})
> db.test.aggregate({'$match':{ 'myField':{'$exists':false} }})
{
"result" : [
{
"_id" : ObjectId("51b9cd2a6c6a334430ec0c98"),
"Hello again" : "World!"
}
],
"ok" : 1
}
Il documento che ha myField attuale non mostra nei risultati.
L'operatore [$ type] (http://docs.mongodb.org/manual/reference/operator/type/) è anche disponibile per cercare i campi con valori 'null' (esiste anche un tipo' non definito 'deprecato). Questa voce [FAQ] (http://docs.mongodb.org/manual/faq/developers/#how-do-i-query-for-fields-that-have-null-values) spiega le query per null e/o campi mancanti (gli stessi operatori sono disponibili per il framework di aggregazione). Ad esempio: 'db.test.aggregate ({'$ match': {'myField': {'$ tipo': 10}}}} corrisponde ai documenti che hanno un' myField' definito ma il suo valore è 'null' . – jimoleary
filtrarlo per $type:6
, (mongodb referece, nota che questo tipo contrassegnato come 'deprecato'):
db.records.aggregate({
$match: {
myField: {'$type':6},
}
})
Grazie per questo. La risposta accettata non sembra rispondere alla domanda, ma questo è ed è incredibilmente utile dare che se provi a cercare "non definito" ti dice che non puoi. – Chris
Come si fa a definire non definita? Intendi qualcosa come ['$ exists'] (http://docs.mongodb.org/manual/reference/operator/exists/)? Se possibile, aggiungi un documento di esempio e una query regolare che lo restituisca. Osservando la tua domanda, ''undefined'' è una stringa, proprio come'' Hello, World! '. – ixe013