埋め込みドキュメントがそれぞれのコレクションに保存されていないようです。埋め込みドキュメントがコレクションに保存されていません
var County = new Schema({
_id : Schema.ObjectId,
name : String,
biggestCity : String
});
var Country = new Schema({
_id : Schema.ObjectId,
name : String,
counties : {type: [County], ref: "County"}
});
var Continent = new Schema({
_id : Schema.ObjectId,
countries : {type: [Country], ref: "Country"},
});
...と、ここで私はMongoDBのにそれらを保存するために使用するコードは次のとおりです:ここに私のモデルだ
var continentModel = mongoose.model("Continent");
var continent = new continentModel();
country.name = name;
var countryModel = mongoose.model("Country");
var countyModel = mongoose.model("County");
for (var i = 0; i < req.body.countries.length; i++) {
var country = new countryModel();
country.name = req.body.countries[i].name;
for (var j = 0; j < req.body.countries[i].counties.length; j++) {
var county = new countyModel();
county.name = req.body.countries[i].counties[j].name;
county.biggestCity = req.body.countries[i].counties[j].biggestCity;
countries.counties.push(county);
}
continent.countries.push(country;
}
continent.save();
私は()db.continents.findを行う場合は、文書が戻ってきますすべてのプロパティ(国と郡を含む)にデータが格納されます。
しかし、db.counties.find()またはdb.countries.find()を実行すると、何も戻ってこない。だから、郡と国の文書がそれぞれのコレクションにDBに保存されているのではなく、(埋め込み文書ではなく)代わりに通常のプロパティとしてコンチネンタルコレクションに保存されているようです。
私は間違っていますか?
country.nameはcontinent.nameを読みます。 – tremolo
db.continent.find()の出力を投稿できますか?答えを助けるでしょう –