Possiedo una raccolta MongoDb contenente 284.116 tweet. Il problema è che il campo "autore" in alcuni oggetti è nel tipo di oggetto, ma in altri oggetti - questo campo "autore" - sono nel tipo di matrice. Quindi il problema è che voglio filtrare quali sono Array e quali sono Object.
Ad esempio: Il tipo di campo dell'autore è oggetto.
{
"_id" : ObjectId("55edfbd11a87d41d987a6dc1"),
"tweet" : "Back in my dorm, yay!",
"uri" : "https://twitter.com/natalylug0/status/640994018529181696",
"date" : "2015-09-08 00:04:17",
"country" : "U.S.A.",
"city" : "Texas",
"state" : "Dallas",
"author" : {
"username" : "Nataly",
"uri" : "https://twitter.com/natalylug0",
"screenname" : "natalylug0"
}
}
E l'altro: tipo del campo autore è array.
{
"_id" : ObjectId("55ee3a00e11fbb1030d659fe"),
"author" : [
{
"username" : "Relapsed Shini",
"uri" : "https://twitter.com/iPictoraL",
"screenname" : "iPictoraL"
}
],
"tweet" : "@zumbiezuza ily zoeeeeeeee",
"uri" : "https://twitter.com/iPictoraL/status/641060812140900352",
"date" : "2015-09-08 01:29:42",
"country" : "U.S.A.",
"city" : "Texas",
"state" : "Dallas"
}
Così ho eseguito query come questa:
db.getCollection('tweets').find({ author: { $type: 4} })
E quello che ottengo è
Fetched 0 record(s)
Ma se eseguire $ tipo: 3 ottengo 284.116 valori che è lo stesso valore di dimensione di questa collezione.
Quindi la mia domanda è, come posso filtrare gli oggetti che i campi "autore" contengono matrici.
Se il codice ha un bug e sta inserendo oggetti che assomigliano a matrici, il proposto "autore.0": {"$ exists": true} 'non funziona. Sto parlando di '{0:" bla "}' – Danielo515