görünüyor ama ben bir yere tam bir cevap bulmak için görünmüyor olabilir.Gelincik iç içe sorgu
Ben Ne:
Ben Firma ve Kişi modelleri var:
var mongoose = require('mongoose');
var PersonSchema = new mongoose.Schema{
name: String,
lastname: String};
// company has a reference to Person
var CompanySchema = new mongoose.Schema{
name: String,
founder: {type:Schema.ObjectId, ref:Person}};
Ben gerekenler:
soyad "Robertson" olan insanlar kurdu tüm şirketler bulun
denedim ne:
Company.find({'founder.id': 'Robertson'}, function(err, companies){
console.log(companies); // getting an empty array
});
Sonra Kişi gömülü fakat başvurulan olmadığını anladım, bu yüzden kurucusu-Kişi doldurmak için doldurulmasını kullanılan ve daha sonra
// 1. retrieve all companies
// 2. populate their founders
// 3. find 'Robertson' lastname in populated Companies
Company.find({}).populate('founder')
.find({'founder.lastname': 'Robertson'})
.exec(function(err, companies) {
console.log(companies); // getting an empty array again
});
Hala sorgulayabilir 'Robertson' lastname ile bulmak kullanmaya çalıştı Kişinin kimliğini String olarak gösteren şirketler. Ama tam olarak istediğim gibi değil.
Company.find({'founder': '525cf76f919dc8010f00000d'}, function(err, companies){
console.log(companies); // this works
});
Bir eklem benziyor ki haklısın. Uygulamayı düşündüğüm en basit iç içe geçmiş sorguyu verdim, muhtemelen ilişkisel DB'lerin daha kullanışlı olduğu durum budur. Ama neyse, çözümün işe yaradı. Thnx! – AzaFromKaza
Merhaba, aynı soruna sahip olduğum için bu cevabı arıyordum, son bir soru olsa da, bu değişti mi yoksa 3.8.8 şimdi mi mümkün? Bu sorunun yayınlandığından beri farkettim. – maumercado
@maumercado Hayır, değişmedi ve olması olası değil. – JohnnyHK