sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvorfor vil mine refs ikke udfylde dokumenter?

Jeg tester lige dine eksempelkoder med følgende, denne forespørgsel Like.findOne({}).populate('user_id').exec(callback); virker godt.

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

Indsæt data i 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....');
        });
    }
});

Forespørgsel af

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

Og resultatet er

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



  1. Yderligere felter til registrering af pas-lokal-mongoose-konto?

  2. Hvordan man håndterer bindestreger i GraphQL Schema definitioner

  3. DB-ref i mongoose uden Schema.ObjectId?

  4. Hvordan opretter man forbindelse til MongoDB 3.2 i Java med brugernavn og adgangskode?