db.collection.findOne({$or: [{email: '[email protected]'},{'linkedIn.id': 'profile.id'}]});
这样的请求可能会返回一个包含两条记录的数组。
是否可以指定仅返回第一次出现,以便始终将模型作为响应而不是数组?
例如如果存在具有指定电子邮件的记录,则返回该记录并且不返回其他记录,如果有,匹配profile.id
?
另一个问题是,如果参数'email'
和'linkedIn.id'
的顺序很重要。
所有这些榛子都是关于LinkedIn战略,它永远不会返回一封电子邮件(至少对我来说),但我必须迎合可能会返回电子邮件的情况。所以我构建我的查询取决于电子邮件的存在,如果它存在,查询是与$or
运算符。但我想避免检查响应是一个对象还是一个数组,然后对数组值执行附加操作来确定要使用哪个值。
你是对的。我错误地用find代替findOne。 – user2814599