sql >> データベース >  >> NoSQL >> MongoDB

参照がドキュメントに入力されないのはなぜですか?

    サンプルコードを次のようにテストします。このクエリLike.findOne({}).populate('user_id').exec(callback); うまくいくようです。

    スキーマ:

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

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

    によるクエリ
    Like.findOne({}).populate('user_id').exec(function(err, doc) {
        if (err)
            console.log(err);
        else
            console.log(doc);
    });
    

    そして結果は

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



    1. Linuxファイルシステムを使用しているWindows用のDockerでmongoDbコンテナを実行できません

    2. シェルスクリプトを介してmongoコマンドを実行する方法は?

    3. MongoDBの各グループ内でmaxに対応するドキュメントをグループ化して選択するにはどうすればよいですか?

    4. MongoDBgroupby個別の並べ替え