我正在做一个使用Mongoose的MongoDB项目,在查询路径文档时遇到了挑战.每个路径文档都有如下 struct :
const locationSchema = new mongoose.Schema({
name: { type: String, required: true },
precedence: { type: Number, required: true },
});
const routeSchema = new mongoose.Schema({
name: { type: String, required: true },
locations: [{ type: locationSchema, required: true }],
});
Locations数组包含具有字段名称和优先级的子文档.
这里的优先级表示--如果某条路由位置A、B和C的优先级分别为1、2和3,则表示先覆盖位置A,然后覆盖B,然后覆盖C.
现在,我需要检索从位置A到位置B的所有路由,其中位置A的优先级小于位置B的优先级.
如果这就是数据:
[
{
"name": "routeA",
"locations":[
{
"name":"A",
"precedence":1
},
{
"name":"B",
"precedence":2
},
{
"name":"C",
"precedence":3
}
]
},
{
"name": "routeB",
"locations":[
{
"name":"A",
"precedence":2
},
{
"name":"B",
"precedence":1
},
{
"name":"C",
"precedence":3
}
]
}
]
我只能 Select 路由A.
我try 使用Aggregate,但没有得到所需的结果.