我只想在物件不為空時才運行陳述句。如果它為空,我不想做任何事情。我想確定是否有適當的方法來實作這一目標。例如,我在 MongoDB Playground 上嘗試過,但沒有成功。這是游樂場的鏈接:https ://mongoplayground.net/p/yOmRxML88zi
這是我要運行的 if-else 陳述句:
db.collection.aggregate([
{...},
service_type ? { $match: { serviceType: service_type } } : null,
{...},
]);
因此,如果 service_type 不為空,則運行陳述句 else 跳到聚合中的下一個物件。在這種情況下,我想做的是獲取資料庫(物件)中包含用戶給出的特定服務型別的所有內容的串列。
架構看起來像這樣:
const sellerSchema = new mongoose.Schema({
user_id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
...,
serviceType: [{ String }],
});
uj5u.com熱心網友回復:
如果您使用的是 Mongoose,我想您正在使用 Javascript 或 TypeScript 撰寫您的應用程式。
那么,是什么阻止您構建這樣的查詢呢?
const aggregatePipeline = [];
if (service_type) aggregatePipeline.push({ $match: { serviceType: service_type }});
...
db.collection.aggregate(aggregatePipeline).exec()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/470251.html
