【发布时间】:2017-06-27 15:57:08
【问题描述】:
假设我有以下集合架构
var terminalSchema = new mongoose.Schema({
name: 'String',
ip: 'String'
});
var wayPointSchema = new mongoose.Schema({
name: 'String',
description: 'String',
long: 'Number',
lat: 'Number',
distances: [{
toTerminal : { type: Schema.Types.ObjectId, ref: 'Terminal' },
km : 'Number',
minutes: 'Number'
}]
});
如何找到所有带有 terminal.ip = '10.0.0.1' 的 WayPoints
我尝试了以下没有运气...
WayPoint.find()
.populate({
path: 'distances.toTerminal',
match: { 'distances.toTerminal.ip': '10.0.0.1'},
})
.exec(function(err, wp) {
if(err || !wp) {
throw err;
} else {
console.log(wp);
}
})
返回整个集合
更新 - 进展?
我认为我在以下代码方面取得了一些进展,因为它现在只显示 [object] 用于匹配的子文档,null 用于不匹配的子文档。
WayPoint.find({'distances.toTerminal': {$exists: true}})
.populate({
path: 'distances.toTerminal',
select: 'description',
match: { ip: '10.0.0.1'}
})
.exec(function(err, wp) {
if(err || !wp) {
throw err;
} else {
console.log(wp);
}
})
【问题讨论】:
标签: javascript node.js mongodb mongoose mongodb-query