2016-12-02 5 views
-1

私は現在、複数のIDを配列として保存しているモンゴーズモデルを持っています。Mongooseクエリーが配列を未定義として返す

var map = new Schema ({ 
    "AdminID" : [{type: mongoose.Schema.Types.ObjectId, required: false }], 
    "AdminKeys" : [{type: mongoose.Schema.Types.ObjectId, required: false }] 
}); 

mongoシェルでクエリを実行すると、AdminKeys配列にいくつかの値があることがわかります。

"_id" : ObjectId("584101b5b2483a57256bdf16"), 
"AdminID" : [ ], 
"AdminKeys" : [ 
     ObjectId("583b5f0b9a64391584e4b4ad") 
] 

しかし、私は試してみて

Map.findOne({_id: ObjectId('584101b5b2483a57256bdf16')}, 
{_id : 0, AdminID: 1, AdminKeys: 1 } (err, map) => { 

     if (err) { 
     console.log(err); 
     return; 
     } 
     console.log(map); 
} 

を行うときに、私のコントローラでは、私は未定義の配列フィールドが残っていますし、私のAdminKeys配列内の値のいずれかにアクセスすることはできません。

_doc: 
    { AdminID: undefined, 
     AdminKey: undefined }, 
'$__original_save': [Function], 

誰かが私には何が起こっていると周りの仕事を理解するためにとても親切だろうならば、それははるかに高く評価されるだろう。

答えて

2

これを試してみてください:

Map.findOne({_id: ObjectId('584101b5b2483a57256bdf16')}, 'AdminID AdminKeys',function(err, map) { 

    if (err) { 
    console.log(err); 
    return; 
    } 
    console.log(map); 
}); 

希望は、このことができます:)

+0

このクエリはまったく問題あり、その引数は返すようにフィールドマングースを伝えることです。 –

+0

@RaviShankarあなたが助けてくれたら、あなたは答えをアップヴォートするべきです。 –

関連する問題