Node.js 猫鼬-不同的语法

Node.js 猫鼬-不同的语法,node.js,mongoose,Node.js,Mongoose,有人能告诉我这个猫鼬查询是否可以简化或写得更透明。请举例说明: 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

有人能告诉我这个猫鼬查询是否可以简化或写得更透明。请举例说明:

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

谢谢

您是否尝试只使用
查找
查询?像这样:

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

@避免我没有得到什么错误,你能尝试重新表述你的评论吗?在这种查询中,定义的第一条规则,在本例中为“game.players.id”,将是搜索所有其他规则的主要规则。“search game.player.id where game.player.game.rules.gameType”。什么“search game.player.id where game.player.game.rules.gameType”这意味着您正在尝试检索满足其他查询的
game.player.id
的值。否则,您可以简单地将查询字段从
'game.rules.gameType'
修改为
'game.player.game.rules.gameType'
等。从另一个角度看,这个解决方案似乎很好。你面临什么问题?