MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Препратки към документ Mongoose с връзка „едно към много“.

Обърнете се към населението, тук извлечете пример от 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);

Така че примерът за Story модел съхранява свързани Person._id в Story._creator . Когато намерите документ на Story , можете да използвате populate() метод за дефиниране кой атрибут в Person модел, който искате да извлечете едновременно, като например:

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);
});

Вярвам, че това е, което търсите. Или вместо това можете да използвате вложени колекции.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. SQL LPAD()

  2. Какъв е правилният начин да направите HAVING в MongoDB GROUP BY?

  3. Трите А на сигурността на MongoDB – удостоверяване, оторизация и одит

  4. MongoDB $dayOfYear

  5. Внедряване на MongoDB във виртуален частен облак на Amazon (VPC)