【发布时间】:2015-04-15 07:13:38
【问题描述】:
使用 MongoDB 和 Mongoose,例如,我有这个架构:
var componentSchema = mongoose.Schema({
name : String,
price : Number
});
var partSchema = mongoose.Schema({
componentId : { type: Schema.Types.ObjectId, ref: 'Component' },
quantity : Number
});
var robotSchema = mongoose.Schema({
name : String,
type : Number,
parts : [partSchema]
});
每个机器人都需要构建一组组件。
由于机器人可能需要多个组件的单个副本(例如 10 个螺栓、5 个螺钉、1 个晶体管...),我们在机器人模型中存储了一个 零件 数组,其中每个部分都包含对组件的引用以及一个附加字段,数量。
现在我有兴趣在给定 组件 名称数组(或者,最终给定组件 ID 数组)的情况下查找我可以使用这些类型的组件构建的所有机器人 (请注意,一个组件不包括数量,我只是假设我有无限数量的这些组件),按使用给定数组中大多数组件的那个排序。
Robot A: 2 bolts, 2 transistors
Robot B: 10 bolts, 2 capacitors, 3 bars of plutonium
Robot C: 5 bolts, 1 capacitor, 5 transistors
I have [bolts, capacitors, transistors].
Query results:
Robot C
Robot A
(In this order!)
复杂的 MongoDB 查询甚至可以实现吗?
【问题讨论】: