Sto cercando di ottenere il numero di documenti che hanno un campo con una stringa vuota. Questo campo, chiamiamolo "Field_One" è presente in tutti i documenti (quindi, per essere chiari, non sto cercando di scoprire se il campo esiste o no, voglio trovare quali documenti non hanno nulla (stringa vuota) nel campo "Field_One "Come verificare che un campo stringa in un documento MongoDB non sia vuoto?
ho provato ad utilizzare (utilizzando il driver C#):.
collection.Find(Query.NE("Field_One", BsonNull.Value)).Count()
collection.Find(Query.NE("Field_One", BsonString.Null)).Count()
e anche (qualcuno ha suggerito questo da qualche parte):
collection.Find(Query.GT("Field_One", BsonString.Empty)).Count()
Ma non funziona (tornano tutte le documenti)
Inoltre, come domanda correlata: è questo il modo migliore per ottenere il numero di documenti corrispondenti in una raccolta? Per quanto ho capito, in realtà non recupererà i documenti dal database al mio programma, quindi il calcolo del conteggio viene eseguito nel server MongoDB.
conteggio si è fatto sul server. proprio come un controllo di integrità, quando dici una stringa vuota, appare come valore "" quando recuperi il documento ed esamini quel campo? –
Ciao Asya, grazie per la tua risposta. Ho recuperato il JSON e viene mostrato come "" per quei documenti che non hanno dati in quel campo. Quindi il campo è lì, di tipo String e ha "" per alcuni documenti e ha informazioni per gli altri. –
nella shell di mongo, puoi provare: db.collection.find ({field: {$ type: 10}}). Controlla questa documentazione: http://docs.mongodb.org/manual/reference/operator/type/ – genericuser