是否有特定的方法可以使用 mongoose 在 javascript for mongodb 中执行 if-else 语句?

Is there specific way to do an if-else statement in javascript for mongodb using mongoose?

我只想 运行 仅当对象不为 null 时才声明。如果它为空,我不想做任何事情。我想确定是否有适当的方法来实现这一目标。例如,我在 MongoDB 游乐场上尝试过,但没有用。这是去游乐场的 link: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 }],
});

如果您使用的是 Mongoose,我想您是在使用 Javascript 或 TypeScript 编写您的应用程序。

那么,是什么阻止了您像这样构建查询?

const aggregatePipeline = [];

if (service_type) aggregatePipeline.push({ $match: { serviceType: service_type }});

...

db.collection.aggregate(aggregatePipeline).exec()