Repozytorium Web Developera

MongoDB

Przydatne linki

MongoDB

Przydatne komendy

// włączanie konsoli MongoDB
mongo

/*
 * BAZY
 */
// 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()

/*
 * KOLEKCJE
 */
// wypisywanie listy kolekcji w bazie danych
show collections
// lub
show tables
// lub
db.getCollectionNames()

// usuwanie kolekcji
db.NAZWA_KOLEKCJI.drop()
Źródło

Restart MongoDB

// Mac OSX + homebrew
brew services restart mongodb

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