簡體   English   中英

填充方法不返回文檔-貓鼬

[英]Populate method not returning documents - Mongoose

需要解決此問題的幫助,我正在嘗試使用populate方法將一個Id替換為一個經過修訂的文檔,但是當我輸出返回的結果時,不會返回這些文檔,而是仍然保留Id值。 這是我要澄清的架構和詳細代碼,謝謝

 var CommentSchema=new mongoose.Schema({
     comment:{type:String},
     accountId:{type:mongoose.Schema.ObjectId, ref:'Account'}
  });


var StatusSchema=new mongoose.Schema({
 comments:[CommentSchema],
 accountId:{type:mongoose.Schema.ObjectId, ref:'Account'},//should be replaced with docement
          status:{type:String}
      });

帳戶架構

 var AccountSchema=new mongoose.Schema({
    email:{type:String,unique:true},
    password:{type:String},
    name:{
        first:{type:String},
        last:{type:String},
      full:{type:String}
    },
    contacts:[Contact],
    status:[Status]
  });

 var Account=mongoose.model('Account',AccountSchema);
  var Comment=mongoose.model('Comment',CommentSchema);
  var Status=mongoose.model('Status', StatusSchema);

//這就是我保存新評論的方式

 app.post('/accounts/:id/status', function(req, res) {
    var accountId =  req.params.id;

    models.Account.findById(accountId, function(account) {
        account.save(function(err){
          if (err) throw err;
        var status=new models.Account.Status();
        status.accountId=accountId;
        status.status=req.param('status', '');
        status.save(function(err){
         account.status.push(status);
         account.save(function(err){
             if(err)console.log(err)
             else
                console.log('successful! status save...')
         });
        });
      });
   });
   res.send(200);
  });

// QUERY-我希望此查詢將用引用的文檔替換accountId,但是當查詢運行時,accountId仍保留id而不是引用的文檔

var getActivity= function(accountId,callback){
  Account.findOne({_id:accountId}).populate('Status.accountId').exec(function(err, items)    {
                  console.log('result is:'+items);
             });
      }

在定義AccountSchema之前,您正在使用Status 但是, StatusSchema ,您實際上應該在AccountSchema的定義中使用StatusSchema (架構)而不是Status (模型)。

嘗試以下方法:

var AccountSchema=new mongoose.Schema({
    email:{type:String,unique:true},
    password:{type:String},
    name:{
        first:{type:String},
        last:{type:String},
        full:{type:String}
    },
    contacts:[Contact],
    status:[StatusSchema]
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM