MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Odniesienia do dokumentów Mongoose z relacją jeden-do-wielu

Odnieś się do populacji, tutaj wyciąg z przykładu z Mongoose.

var mongoose = require('mongoose')
, Schema = mongoose.Schema

var personSchema = Schema({
  _id     : Schema.Types.ObjectId,
  name    : String,
  age     : Number,
  stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});

var storySchema = Schema({
  _creator : { type: Schema.Types.ObjectId, ref: 'Person' },
  title    : String,
  fans     : [{ type: Schema.Types.ObjectId, ref: 'Person' }]
});

var Story  = mongoose.model('Story', storySchema);
var Person = mongoose.model('Person', personSchema);

Przykład o Story model przechowuje powiązane Person._id w Story._creator . Gdy znajdziesz dokument Story , możesz użyć populate() metoda do zdefiniowania atrybutu w Person model, który chcesz pobrać w tym samym czasie, na przykład:

Story.findOne({_id: 'xxxxxxx'}).populate('person', 'name age').exec(function(err, story) {
  console.log('Story title: ', story.title);
  console.log('Story creator', story.person.name);
});

Wierzę, że tego właśnie szukasz. Albo możesz zamiast tego użyć kolekcji zagnieżdżonych.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dlaczego MongoDB zajmuje tyle miejsca?

  2. Zapytanie MongoDB $in z tablicą wyrażeń regularnych elementu

  3. 5 sposobów na wstawianie dokumentów do MongoDB

  4. $filter wewnątrz $project MongoDB przy użyciu Spring Data

  5. Mongodb unika zduplikowanych wpisów