此刻,我正在使用2个查询在字段(包含2个数组的对象)中搜索用户名值,然后将它们合并在一起。我似乎无法弄清楚如何编写一个查询来一次搜索两个数组并返回与任何数组中的给定username
匹配的所有结果的查询。我想知道这是否可能?感谢您的输入!
Game.find({
active: false,
'current_players.team1': { $elemMatch: { $in: [username] } }
})
Game.find({
active: false,
'current_players.team2': { $elemMatch: { $in: [username] } }
})
这是我正在使用的架构:
var Game = mongoose.Schema({
id: ...,
...,
...,
current_players: {
team1: Array // [ 'jim', 'bob', 'sarah', null ]
team2: Array // [ 'peter', 'frank', null, 'simon']
}
})
答案 0 :(得分:0)
要在一个查询中搜索两个数组以查找此问题,可以使用$ or运算符。
db.collection.find({
"active": false,
$or: [
{
"current_players.team1": "username"
},
{
"current_players.team2": "username"
}
]
})