sql >> Databáze >  >> NoSQL >> MongoDB

Proč moje reference nevyplňují dokumenty?

Právě jsem testoval vaše ukázkové kódy pomocí následujícího, tohoto dotazu Like.findOne({}).populate('user_id').exec(callback); Zdá se, že funguje dobře.

Schéma:

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

Vložit data do 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....');
        });
    }
});

Dotaz od

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

A výsledek je

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



  1. Jak bude výpadek primárního serveru řešen automaticky v replikaci mongodb

  2. node.js:Mongodb db.collection.find() nefunguje, zatímco collection.insert funguje

  3. Co dělá konfigurační volba --bindip v mongodb?

  4. Hromadné vložky Pymongo nefungují