0
我有一個查詢,它將一組文檔重新映射爲一個承諾(.exec)。
此外我有一個(承諾)函數,它也返回一個數組。兩者都結合在Promise.all中。從Model.findOne返回一個數組?
現在我想將.find
移動到.findOne
以加速過濾器。但與findOne
我會得到沒有陣列回來。所以我決定使用.find().limit(1)
我的問題是如果這是一種有效的方法,而不是使用.findOne,如果沒有:是否有一種簡單的方法將findOne的結果作爲數組返回?也許與.lean
?
var query = Model.find({ $and: [ { _id: id },
{ $or: [ { owner: userID },
{ isPublic: true } ]}
]}).limit(1);
Promise.all([query.exec(), this._sources(user)]).then((doc: Array<any>) => {....}
不知道這會有幫助與否。您是否嘗試過使用[toArray()](https://docs.mongodb.com/manual/reference/method/cursor.toArray/)? – Shrabanee