Sto analizzando un'origine dati MongoDB per verificarne la qualità. Mi chiedo se ogni documento contiene l'attributo time
: quindi ho usato questo comando dueMongoDB: dimensione del risultato della query maggiore della dimensione della raccolta
> db.droppay.find().count();
291822
> db.droppay.find({time: {$exists : true}}).count()
293525
Come posso avere più elementi con un determinato campo rispetto agli elementi contenuti nella collezione? Cosa c'è che non va? Non riesco a trovare l'errore. Se è necessario, posso postare la struttura prevista del documento.
La versione di Mongo Shell è 1.8.3. La versione di Mongo Db è 1.8.3.
Grazie in anticipo
Questa è la struttura prevista di entrata documento:
{
"_id" : ObjectId("4e6729cc96babe974c710611"),
"action" : "send",
"event" : "sent",
"job_id" : "50a1b7ac-7482-4ad6-ba7d-853249d6a123",
"result_code" : "0",
"sender" : "",
"service" : "webcontents",
"service_name" : "webcontents",
"tariff" : "0",
"time" : "2011-09-07 10:22:35",
"timestamp" : "1315383755",
"trace_id" : "372",
"ts" : "2011-09-07 09:28:42"
}
questo è totalmente strano, puoi aggiornare la struttura del documento .... – RameshVel
Posso inserire, aggiornare e leggere la collezione. Ho aggiornato la risposta con la struttura del documento prevista. – LoSciamano
Potrebbe essere che contenga anche "timestamp"? Inoltre puoi provare a scoprire quali oggetti sono stati conteggiati più di una volta nella query "esiste" (come per http://stackoverflow.com/questions/4224773/fast-way-to-find-duplicates-on-indexed-column- in-MongoDB). C'è qualcosa di interessante nell'output "explain()"? Hai rinominato il campo? – mikalai