私は次のことを行います:
var peoples = db.model('peeps', new mongoose.Schema());
peoples.find({}, {weights: 1}).exec(function(err, data) {
// data is an array with objects
data.forEach(function(el, index, array) {
console.log(el); // --> {weights: [{weight: 45.78, diet: ln}, {weight: 21.89, diet: lgt}]}
consoel.log(el.weights) // --> undefined
} ... });
しかし、次のようなスキーマを提案すると:
var peoples = db.model('peeps', new mongoose.Schema({
weights: []
}));
peoples.find({}, {weights: 1}).exec(function(err, data) {
// data is an array with objects
data.forEach(function(el, index, array) {
console.log(el); // --> {weights: [{weight: 45.78, diet: ln}, {weight: 21.89, diet: lgt}]}
consoel.log(el.weights) // --> [[object Object], [object Object]]
} ... });
2番目は、[object Object]にアクセスすることを可能にしますel.weights[0].weight
これはマングースの設計による違いですか、それとも配列内のオブジェクトにアクセスする最初のコードブロックで何か間違ったことをしていますか?
スキーマ/データの例は次のとおりです。
{ _id: 0,
spname: 'INDV_748',
weights:
[ { weight: 1.463179736705023, diet: 'ln' },
{ weight: 11.78273309957772, diet: 'lgt' } ] }
で を指定しない_id: Number
とnew mongoose.Schema({...})
、上記の両方の状況でクエリに が _id
表示されません。find()
これもデザインの一部?