0

私は次のことを行います:

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: Numbernew mongoose.Schema({...})、上記の両方の状況でクエリに が _id表示されません。find()

これもデザインの一部?

4

0 に答える 0