Io uso Mongo con il suo driver Java e Morphia. Sto mappando questa classe:
public class Transaction {
@Id
private ObjectId id;
private String transactionUniqueIdentifier;
}
Vedo nella console che Mongo salva una transazione in un formato simile {transactionUniqueIdentifier: "xjeer"}
Significa che dovrei usare nomi di proprietà più brevi("uuid" invece di "transactionUniqueIdentifier") per ottenere un database più piccolo? O c'è un ambiente in Mongo che potrebbe occuparsene (creare nomi più brevi internamente ...).
Qualsiasi puntatore sarebbe apprezzato, grazie.
risposte:
1 per risposta № 1Con la morfologia, i nomi delle proprietà del documento corrispondonoi nomi dei campi Java per impostazione predefinita. Puoi nominarli, tuttavia, ti piacerebbe essere serializzati in mongodb usando l'annotazione @Property e fornendo il nome che desideri.
2 per risposta № 2
Non esiste una mappatura interna dei nomi dei campi all'interno di MongoDB.
La creazione o meno di nomi più brevi dipende da numerosi fattori, tra cui l'utilizzo del documento in Riduzione della mappa, la dimensione complessiva del documento e l'hardware sui server.
Ad esempio se il tuo documento è più facile da gestire in Map Reduce using transactionUniqueIdentifier
piuttosto che uuid
e il documento è piuttosto piccolo (diciamo circa 5 KB ciascuno) e hai SSD (probabilmente non necessari in realtà), quindi il restringimento dei nomi dei campi diventa quasi inutile.
Alcuni sostengono che non è così, ma l'uso del mondo reale impone di avere cose più grandi di cui preoccuparsi.
Tuttavia, se avessi molti campi con nomi lunghi o se avessi nomi più lunghi di transactionUniqueIdentifier
quindi potresti volerli accorciarealtrimenti potresti passare la maggior parte del tempo a caricare i nomi dei campi di un documento dal disco invece di caricare i valori effettivi (poiché i nomi dei campi saranno maggiori della dimensione totale dei valori dei documenti).
Ci sono piani per comprimere i nomi dei campi, tuttavia, fino ad ora, altre funzionalità hanno avuto la priorità.