【发布时间】:2022-11-23 02:07:15
【问题描述】:
bookSchema 集合:
[
{
_id: ObjectId("637d05dc32428ed75ea08d09"),
book_details: {
book_subscription: null,
book_auth: 'Amber'
},
book_name: 'random123'
},
{
_id: ObjectId("637d0673ce0f17f6c473dee2"),
book_details: {
book_subscription: ObjectId('637d06a545a17f0e686ecf3a'),
book_auth: 'Shurya'
},
book_name: 'random321'
},
{
_id: ObjectId("637d069a3d597c8458ebe4ec"),
book_details: {
book_subscription: ObjectId('637d06ac82f0760b03fdea0d'),
book_auth: 'Aman'
},
book_name: 'random676'
},
{
_id: ObjectId("637d06c05b32d503007bcb54"),
book_details: {
book_subscription: null,
book_auth: 'Saurav'
},
book_name: 'random999'
}
]
如果 book_subscription 不为空,我希望 book_count 为 1;如果 book_subscription 为空,我希望 book_count 为 0。
为此,我试过:
db.bookSchema.aggregate([
{
"$addFields": {
"book_count": {
"$cond": {
"if": {
"$ne": [
"book_details.book_subscription",
null
]
},
"then": 1,
"else": 0
}
}
}
}
])
但是我得到的 book_count 是 1,即使图书订阅为空。
如何检查 book_subscription 的值是否为 null,并仅对有值的 book_subscription 计数为 1,对 book_subscription,null 计数为 0?
Mongodb 游乐场:https://mongoplayground.net/p/Ff4Q43-nSQe
【问题讨论】:
标签: javascript mongodb