如何在猫鼬中查询小于特定大小的子文档?
How to query a sub document that is less than a particular size in mongoose?
我有一个游戏对象,它有一个布尔值 isOpen
和一个包含玩家数组的子文档 players
。我想找到一个开放供玩家加入且少于 5 名玩家的游戏。我该怎么做呢?最好不使用 $where
//made up sample for reference
const sampleDocument = {
isOpen: true,
isOver: false,
players : [{
socketID: 'sldfjskdfjsjdfsdfj',
isBot: false,
name: 'NickName',
}],
startTime: 32343234
相关代码行
let game = await Game.findOne({isOpen: true, /*players : { $size: {$lt: 5} }*/})
你需要$expr
.
db.collection.find({
$expr: {
$and: [
{
$eq: [
"$isOpen",
true
],
},
{
$lt: [
{
"$size": "$players"
},
5
]
}
]
}
})
我有一个游戏对象,它有一个布尔值 isOpen
和一个包含玩家数组的子文档 players
。我想找到一个开放供玩家加入且少于 5 名玩家的游戏。我该怎么做呢?最好不使用 $where
//made up sample for reference
const sampleDocument = {
isOpen: true,
isOver: false,
players : [{
socketID: 'sldfjskdfjsjdfsdfj',
isBot: false,
name: 'NickName',
}],
startTime: 32343234
相关代码行
let game = await Game.findOne({isOpen: true, /*players : { $size: {$lt: 5} }*/})
你需要$expr
.
db.collection.find({
$expr: {
$and: [
{
$eq: [
"$isOpen",
true
],
},
{
$lt: [
{
"$size": "$players"
},
5
]
}
]
}
})