Chciałbym wiedzieć, czy istnieje konwencja dotycząca zbiorów baz danych, takich jak:
PageVisit
lub page_visit
.
Czy są jakieś wady / zalety tych zapisów?
mongodb
naming-conventions
johnlemon
źródło
źródło
Odpowiedzi:
Ogólne konwencje to:
Przykłady:
Konwencje nazewnictwa pól (powinny) być zgodne z tą samą logiką, chociaż są one dość powszechne.
źródło
Po prostu unikaj używania łączników w nazwach kolekcji.
Dzieje się tak tylko dlatego, że jeśli użyjesz kliknięcia z dwóch poniższych wywołań, pierwsze to nieprawidłowy JavaScript:
db.foo-bar.find(); db['foo-bar'].find();
Oba są funkcjonalnie identyczne, ale drugi jest nieco bardziej irytujący w pisaniu i nie uzupełnia tabulatorów.
Poza tym zalety / wady zależą od tego, jak korzystasz z kolekcji. Konsekwencja jest ważniejsza niż konwencja, którą wybierzesz.
źródło
:
poprawne są nazwy kolekcji w przestrzeni nazw, jak wfoo:bar
?db["\n"].insert({});
- brak błędu. Kwestie, które należy wziąć pod uwagę, to głównie wygoda ze sterownikiem, z którego korzystasz.Na stronie http://docs.mongodb.org/manual/reference/limits/ podano, że nazwy kolekcji powinny zaczynać się od podkreślenia („_”) lub litery i nie mogą:
Jeśli jednak zastosujesz się do tej reguły i utworzysz kolekcję z „_” jako literą początkową, na przykład „_TWII”, napotkasz kłopoty, gdy będziesz chciał usunąć kolekcję. Zobacz poniższy test i zobacz, jak to naprawić. Kolekcja „_TWII” została utworzona pod bazą „people”.
> show collections _TWII employees system.indexes > db._TWII.drop() 2015-02-19T16:34:56.738-0800 TypeError: Cannot call method 'drop' of undefined > use admin switched to db admin > db.runCommand({renameCollection:"people._TWII",to:"people.TWII"}) { "ok" : 1 } > use people switched to db people > show collections TWII employees system.indexes > db.TWII.drop() true > show collections employees system.indexes >
Skrót do usuwania kolekcji _TWII z bazy danych „people”:
> db.createCollection('^TWII') { "ok" : 1 } > db.getCollection('^TWII').drop() true
źródło
MongoDB ma pewne konwencje nazewnictwa. Jedną z nich jest to, że w nazwach baz danych wielkość liter nie ma znaczenia. Ponadto mongo użyje liczby mnogiej nazwy kolekcji, jeśli nie zostanie określona. „kurs” stanie się „kursami”.
Z ich powodu spróbuj nazwać całą swoją kolekcję małymi literami i bez znaków specjalnych. Unikniesz wielu błędów - zwłaszcza jeśli używasz Mongoose. Mongoose ma dziwną specyfikę zapytań.
Na przykład, jeśli masz kolekcję o nazwie „kursy”, oto jak musisz uporządkować swój model:
const LawModel = mongoose.model( "course", new mongoose.Schema({ id: String, name: String, }),
Zauważ, że „kurs” jest liczbą pojedynczą? Mongoose użyje liczby mnogiej, dlatego możesz zobaczyć pustą tablicę „[]”. -> pytasz o nieistniejącą kolekcję.
Spróbuj zmienić nazwę i dostosować model.
źródło