Я использую мангуста заполнить список данных, таких как:Почему mongoose populate возвращает мне незаконный массив и как с ним работать?
Account.findOne({_id:accountId}).populate({
path:"orders.order",
match:{_id:orderId},
selecte:'',
options:{
limit:1
}
}).exec(function (err, doc) {
if (err) {
callback(err);
}
callback(doc);
})
}
и что я получаю:
[ { order: null },
{ order: null },
{ order: null },
{ order: null },
{ order: null },
{ order: null },
{ order:
{ date: Tue May 31 2016 12:56:36 GMT+0800 (HKT),
dishs: [Object],
__v: 0,
message: 'plz deliver after 5 p.m',
price: 5,
address: [Object],
shop: null,
user: 574bfebc29cf722c17f8eafe,
_id: 574d198451615ce01a5e1a81 } } ]
Я думаю, что эти данные массив, но
console.log(typeof doc.orders);//object
console.log(doc.orders.length);//undefined
console.log(doc.orders[0].order);//error
console.log(Array.isArray(doc.orders));//false
Я не знаете, как удалить нулевое значение этих данных и как изменить эти данные в массиве?
Кстати, я нашел сообщение в gist, что mongoose populate.match вернет значение null, если оно не соответствует условию, это правда?