をほどく私がどのように見えるネストされた文書があります:私はやって探しています何
var User = new Schema({
id: String,
position: [{
title: String,
applied:[{
candidate_id: String,
name: String
}],
}],
は、特定の「candidate_id」
に一致する「適用」サブ文書のすべてを返すです私がこれまで持っている:
app.get('/applied', function(req, res){
var position = "58dc2bd4e7208a3ea143959e";
User.aggregate(
{$unwind : "$position"},
{$unwind : "$position.applied"},
{$match:{'position.applied.candidate_id': position}}).exec(function (err, result) {
console.log(result);
});
res.render('applied', { title: 'applied',layout:'candidate'});
});
私は一致するすべての位置を返す別の関数を持っており、そのコードは動作します:
app.post('/search', function (req, res) {
var position = new RegExp(req.body.position, 'i');
var location = new RegExp(req.body.location, 'i');
User.aggregate(
{$unwind : "$position"},
{$match:{'position.title': position,'position.location':location}}).exec(function (err, result) {
console.log(result);
res.send({ results: result });
});
});
したがって、基本的に私はサブサブドキュメントを取得するのに苦労しています。私がどこに間違っているのか?
サンプルデータ:
{
"_id" : ObjectId("58c2871414cd3d209abf5fc9"),
"position" : [
{
"_id" : ObjectId("58d6b7e11e793c9a506ffe8f"),
"title" : "Software Engineer",
"applied" : [
{
"candidate_id" : "58d153e97e3317291gd80087",
"name" : "Sample user"
},
{
"candidate_id" : "58d153e97e3317291fd99001",
"name" : "Sample User2"
}
]
},
{
"_id" : ObjectId("58c2871414cd3d209abf5fc0"),
"title" : "Software Engineer",
}
],
}
上記で何が起こっているのかは、2箇所があり、(最初のエントリ)の1、2、私が行うために必要なもの、候補を適用した、ネストされたが返されていますmongooseクエリと一致する場合はオブジェクト。
何が起こっているかまた、これが適切に動作していないといういくつかのサンプルデータがありますか? –
@ExplosionPills配列が空に戻ってきています。いくつかのサンプルデータを表示するために質問を更新します! – user