MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mengapa referensi saya tidak mengisi dokumen?

Saya baru saja menguji kode sampel Anda dengan mengikuti, kueri ini Like.findOne({}).populate('user_id').exec(callback); tampaknya bekerja dengan baik.

Skema:

var PersonSchema = new mongoose.Schema({
    t: String
}, {collection: 'persons'});

var User = mongoose.model('User', PersonSchema.extend({
  _id: String,
  name: String
}));

var ParentSchema = new mongoose.Schema({
    s: String
}, {collection: 'parent'});

var Like = mongoose.model('Like', ParentSchema.extend({
  _id: String,
  user_id: {
    type: String,
    ref: 'User'
  }
}));

Masukkan Data ke dalam DB,

var user = new User({
    t: 't1',
    _id: '1234567',
    name: 'test'
});

var like = new Like({
    s: 's1',
    _id: '23456789',
});

user.save(function(err, u){
    if(err)
        console.log(err);
    else {
        like.user_id = u._id;
        console.log(like);
        like.save(function(err) {
            if (err)
                console.log(err);
            else
                console.log('save like and user....');
        });
    }
});

Kueri oleh

Like.findOne({}).populate('user_id').exec(function(err, doc) {
    if (err)
        console.log(err);
    else
        console.log(doc);
});

Dan hasilnya adalah

{ _id: '23456789',
  __t: 'Like',
  user_id: { _id: '1234567', __t: 'User', t: 't1', name: 'test', __v: 0 },
  s: 's1',
  __v: 0 }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sisipan luwak Banyak batas

  2. Hubungkan ke beberapa host mongo db dan autentikasi menggunakan database yang berbeda di boot musim semi

  3. Bisakah saya mengonfigurasi MongoDB menjadi In-Memory?

  4. Urutkan array dalam dokumen dengan MongoDB

  5. MongoDB menangani kegagalan penyisipan di Java