6

私は(マングースを介してcustomer.find())マングースを叩き、次のようなものを取り戻しています

[{ _id: 5029a09e099fb5095fdb2d73,
  clientId: 22,
  company: 'X',
  email: 'X@Y.ca',
  firstName: 'X',
  lastName: 'Y',
  quality: 'Sold',
  address: 
   { phone: '',
     alt: '',
     street1: '',
     street2: '',
     city: '',
     state: 'Ontario',
     country: 'Canada',
     code: '' },
  comments: []
}]

これはconsole.logからの直接の結果であることに注意してください。これは私が入力しているものではありません。これはmongoDBの結果です。_idはmongoによってこの形式で返され、問題とはまったく関係ありません。

やってみると

console.log(customer[0])私は得る

{ _id: 5029a09e099fb5095fdb2d73,
      clientId: 22,
      company: 'X',
      email: 'X@Y.ca',
      firstName: 'X',
      lastName: 'Y',
      quality: 'Sold',
      address: 
       { phone: '',
         alt: '',
         street1: '',
         street2: '',
         city: '',
         state: 'Ontario',
         country: 'Canada',
         code: '' },
      comments: []
    }

予想通り

やってみるconsole.log(customer[0].quality)undefined

私が試しconsole.log(customer[0].email)たり、他のいずれかを試したりすると、正常に機能し、期待値が得られます。

私の知る限り、品質は予約語ではありません。何かが足りないのでしょうか。

4

3 に答える 3

2

Mongoose findは、 Queryオブジェクトを返します。単なるjavascriptオブジェクトではありません。モデルのメソッド、クエリメソッド、ドキュメントのメソッドを継承します。console.logは、このオブジェクトのtoStringメソッドの結果のみを表示します。ゲッターまたは仮想によって変更される場合があります。引用符なしの_idも、ObjectIdクラスのtoString結果です。customer [0] .get('quality');で値にアクセスしてみてください。または、customer [0] .toObject();を使用してプレーンオブジェクトに変換します。

于 2012-08-18T17:41:14.940 に答える
0

私はあなたにmongoに挿入されたデータを取り、クエリconsole.log電子メール、品質などを実行しました。

すべてが期待どおりに機能し、未定義の洞察はありませんでした。

私は代わりにMongoose、mongojsを使用していないので、おそらくmongooseにバグがあります。

于 2012-08-18T14:16:49.537 に答える
-1

これは正常に機能しています:

var customer = [{ _id: "5029a09e099fb5095fdb2d73",  clientId: 22,  company: 'X',  email: 'X@Y.ca',  firstName: 'X',  lastName: 'Y',  quality: 'Sold',  address:    { phone: '',     alt: '',     street1: '',     street2: '',     city: '',     state: 'Ontario',     country: 'Canada',     code: '' },  comments: []}]
console.log(customer[0].quality) // it will give Sold

make _id:5029a09e099fb5095fdb2d73 to _id:"5029a09e099fb5095fdb2d73"
于 2012-08-18T12:17:36.847 に答える