db.collection.findOne({$or: [{email: '[email protected]'},{'linkedIn.id': 'profile.id'}]});
這樣的請求可能會返回一個包含兩條記錄的數組。
是否可以指定僅返回第一次出現,以便始終將模型作爲響應而不是數組?
例如如果存在具有指定電子郵件的記錄,則返回該記錄並且不返回其他記錄,如果有,匹配profile.id
?
另一個問題是,如果參數'email'
和'linkedIn.id'
的順序很重要。
所有這些榛子都是關於LinkedIn戰略,它永遠不會返回一封電子郵件(至少對我來說),但我必須迎合可能會返回電子郵件的情況。所以我構建我的查詢取決於電子郵件的存在,如果它存在,查詢是與$or
運算符。但我想避免檢查響應是一個對象還是一個數組,然後對數組值執行附加操作來確定要使用哪個值。
你是對的。我錯誤地用find代替findOne。 – user2814599