Jak mogę sprawdzić zapisy filtrowanie w pole, które ma wartość undefined
:Jak dopasować wartość "niezdefiniowaną" w MongoDB Aggregation Framework?
db.records.aggregate({
$match: {
myField: "undefined",
}
})
Jak mogę sprawdzić zapisy filtrowanie w pole, które ma wartość undefined
:Jak dopasować wartość "niezdefiniowaną" w MongoDB Aggregation Framework?
db.records.aggregate({
$match: {
myField: "undefined",
}
})
Jeśli chcesz odfiltrować dokumenty, które mają kilka pól brakuje, użyj operatora $exists
.
To działa na moim komputerze:
> 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
}
dokumentu, który ma myField prezent nie pokazuje się w wynikach.
Operator [$ type] (http://docs.mongodb.org/manual/reference/operator/type/) jest również dostępny do wyszukiwania pól z wartościami 'null' (istnieje również wycofany typ' undefined'). Ten wpis [FAQ] (http://docs.mongodb.org/manual/faq/developers/#how-do-i-query-for-fields-that-have-null-values) wyjaśnia zapytanie o wartości null i/lub brakujące pola (te same operatory są dostępne dla struktury agregacji). Na przykład: 'db.test.aggregate ({'$ match': {'myField': {'$ type': 10}}}))" pasowałoby do dokumentów, dla których zdefiniowano 'myField', ale ma wartość' null' . – jimoleary
Filtr go $type:6
(mongodb referece, uwaga, że tego typu oznaczone jako 'przestarzałe'):
db.records.aggregate({
$match: {
myField: {'$type':6},
}
})
Dzięki za to. Przyjęta odpowiedź nie wydaje się właściwie odpowiadać na pytanie, ale robi to i jest niesamowicie przydatna, jeśli spróbujesz wyszukać "niezdefiniowane", oznacza to, że nie możesz. – Chris
Jak zdefiniować niezdefiniowana? Masz na myśli coś takiego jak ['$ exists'] (http://docs.mongodb.org/manual/reference/operator/exists/)? Jeśli to możliwe, dodaj przykładowy dokument i regularne zapytanie, które je zwróci. Patrząc na twoje pytanie, '' undefined'' jest ciągiem, tak jak '' Hello, World! ''. – ixe013