Repozytorium Web Developera

Archiwum z lat 2013-2018, treści mogą być nieaktualne.

MongoDB

Przydatne linki

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ło

Update documents in MongoDB

Below example updates a document from users collection which has name field equal to Test. It sets an email field to new@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


Test.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) {
      ...
  });
Źródło

populate()

Jeśli pole jest typu ObjectId to należy użyć metody populate do przeglądania pól danego obiektu:


Story
.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"
});
Źródło