MongoDB
Przydatne linki
- MongoDB Shell Methods
- MongoDB Collection Methods
- Mongoose Documentation
- Mongoose Populate Documentation
Instalacja
Na systemi MacOS zalecana poprzez Homebrew.
Restart serwisu MongoDB na MacOS
Zakładamy, że instalacja odbyła się poprzez Homebrew.
// restart serwisu mongodb
brew services restart mongodb
// lista serwisów
brew services list
MongoDB
Podstawowe komendy
Uruchomienie konsoli:
mongo
Operowanie na dostępnych bazach:
// wypisywanie listy baz danych
show dbs
// wypisywanie aktualnej bazy danych
db
// przełączanie i tworzenie bazy danych
use NAZWA_BAZY
// usuwanie bazy danych
db.dropDatabase()
Operowanie na kolekcjach:
// wypisywanie listy kolekcji w bazie danych show collections // lub show tables // lub db.getCollectionNames() // usuwanie kolekcji db.NAZWA_KOLEKCJI.drop()
ŹródłoUpdate documents in MongoDB
Below example updates a document from
users
collection which hasname
field equal toTest
. It sets annew@email.com
.db.users.update({ name: "Test" }, { $set: { email: "new@email.com" }})
Mongoose
Indeksy - Indexes
W przypadku, gdy idzie utworzyć dwa dokumenty z takimi samymi wartościami dla pól, które mają ograniczenie np.
unique
, dla przykładu powtarzający się adres email przy rejestracji, należy zrestartować proces mongo i/lub przeindeksować kolekcje za pomocądb.<collection-name>.reIndex()
i/lub porzucić bazędb.dropDatabase()
.Zapytania - Quries
Combine two OR-queries with AND in Mongoose
ŹródłoTest.find({ $and: [ { $or: [{a: 1}, {b: 1}] }, { $or: [{c: 1}, {d: 1}] } ] }, function (err, results) { ... } // you can also use the Query#and helper that's available in recent 3.x Mongoose releases: Test.find() .and([ { $or: [{a: 1}, {b: 1}] }, { $or: [{c: 1}, {d: 1}] } ]) .exec(function (err, results) { ... });
populate()
Jeśli pole jest typu
ObjectId
to należy użyć metodypopulate
do przeglądania pól danego obiektu:ŹródłoStory .findOne({ title: 'Once upon a timex.' }) .populate('_creator') .exec(function (err, story) { if (err) return handleError(err); console.log('The creator is %s', story._creator.name); // prints "The creator is Aaron" });