0
我試圖發佈一個節點應用程序到我的Raspberrypi(最接近我的專用服務器XD),以便我的一些朋友測試我寫的一個小型網絡應用程序,但由於某種原因,其中一個查詢在pi上運行時無法正常工作(雲9)。Mongoose/Mongoose查詢結果中缺少的字段
這裏是架構:
var campaignSchema = new Schema({
gameMaster: {
type: Schema.Types.ObjectId,
ref: "Users"
},
players: [{
type: Schema.Types.ObjectId ,
ref: "Users"
}],
name: String,
gameSystem: String,
subSystem: String
});
這裏是查詢:
db.Campaign.findOne({'_id' : req.params.campaign}, 'gameMaster players')
.exec(function(err, campaign){
console.log(campaign);
});
導致:
{
_id: 556f09195865094845a0d522,
players: []
}
但在這樣做的蒙戈結果db.campaigns.find({})
:
{
"_id" : ObjectId("556f09195865094845a0d522"),
"gameMaster" : ObjectId("556d1daf4b9b697213468827"),
"gameSystem" : "Nwodv2",
"subSystem" : "Demon",
"name" : "Baltimore",
"players" : [ ],
"__v" : 0
}
我覺得我一定是錯過了一些東西......我沒有任何想法如何解決這個問題,雖然我試圖在字段中沒有限制器的查詢,但它仍省略了字段gameMaster
...
編輯:在這裏要求的是運動對象的創建
var campaign = new db.Campaign({
gameMaster: userid,
gameSystem: req.body.system,
subSystem: req.body.subsystem,
name: req.body.name
});
進一步混淆,該查詢的工作:
db.Campaign.findOne({'_id' : req.params.campaign},
'_id name gameSystem subSystem gameMaster players')
.populate('gameMaster', '_id displayName')
.populate('players', '_id displayName')
.exec(function(err, campaign) {
//gameMaster is valid here with the id and displayName populated...
});
@JohnnyHK 我將它添加到原來的文章。 用戶標識是登錄用戶的一個對象。 – comwizz2
@SylvainLeroux 是的。我驗證了用戶確實存在被引用。 – comwizz2
@JohnnyHK'module.exports.Campaign = conn.model(「Campaigns」,campaignSchema);'其中'conn'是一個貓鼬連接。 – comwizz2