是否有特定的方法可以使用 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()
我只想 运行 仅当对象不为 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()