2017-02-27 38 views
0

有人可以告诉我,如果这猫鼬查询可以简化或写入更透明。请提供示例:猫鼬 - 不同的语法

Game.where('game.players.id', user).where('game.rules.gameType', GameTypeEnum.x01) 
    .where('game.rules.quatro', rules.quatro).where('game.rules.score', rules.score) 
    .where('game.rules.parcheesi', rules.parcheesi).where('game.rules.runAndGun', rules.runAndGun) 
    .where('game.rules.playOff', rules.playOff).where('game.rules.doubleIn', rules.doubleIn) 
    .where('game.rules.doubleOut', rules.doubleOut).where('game.rules.masterOut', rules.masterOut) 
    .where('game.rules.equalOption', rules.equalOption).where('game.rules.endOption', rules.endOption) 
    .where('game.rules.teamRules', rules.teamRules).find({}, function(err, data) { 
    deferred.resolve(data); 
}); 

谢谢!

回答

0

您是否尝试过使用find查询?像这样:

Game 
    .find({ 
    'game.players.id': user, 
    'game.rules.gameType': GameTypeEnum.x01, 
    'game.rules.quatro': rules.quatro, 
    'game.rules.score': rules.score, 
    'game.rules.parcheesi': rules.parcheesi, 
    'game.rules.runAndGun': rules.runAndGun, 
    'game.rules.playOff': rules.playOff, 
    'game.rules.doubleIn': rules.doubleIn, 
    'game.rules.doubleOut': rules.doubleOut, 
    'game.rules.masterOut': rules.masterOut, 
    'game.rules.equalOption': rules.equalOption, 
    'game.rules.endOption': rules.endOption, 
    'game.rules.teamRules': rules.teamRules 
    }) 
    .exec(function(error, data) { 
    deferred.resolve(data); 
    }); 
+0

@AVoid我没有得到什么是错的,你可以尝试换一种方式表述有何评论? –

+0

在这样的查询中,被定义的第一个规则,在这种情况下是'game.players.id',将是其中将搜索所有其他规则的主要规则。“search game.player.id其中game.player.game .rules.gameType”。 – Avoid

+0

“game.player.id which game.player.game.rules.gameType”暗示的是你试图检索满足其他查询的'game.player.id'的值。 –