【发布时间】:2021-12-22 11:19:48
【问题描述】:
我有这样的架构:
parentId: Number
name:[
new Schema({
language: { type: String, enum: ['en-US', 'fr-CA'] },
text: String,
},{ _id: false }
);
],
isActive: Boolean
...
以及如下示例数据:
{
parentId:1,
"name": [
{"language": "en-US", "text": "Book"},
{"language": "fr-CA", "text": "livre"}
],
isActive:true
// and so many other fields
},
{
parentId:1,
"name": [
{"language": "en-US", "text": "Pen"}
],
isActive:true
// and so many other fields
}
我的猫鼬正在搜索法语文本:
db.langs.find({
"name.language":"fr-CA", parentId: 1
})
第一季度。我怎样才能像这样用法语返回名称:
{
parentId:1,
"name": "livre",
isActive:true
// and so many other fields
}
第二季度。猫鼬有没有可能我可以返回法语文本,如果法语不存在,它会返回英语?
{
parentId:1,
"name": "livre",
isActive:true
// and so many other fields
},
{
parentId:1,
"name": "pen",
isActive:true
// and so many other fields
}
【问题讨论】:
标签: javascript node.js mongodb mongoose aggregation-framework