您只需要 $ne 与 _id 对抗的另一个条件。这可以通过多种方式表示:
要么:
User.find().where({ "_id": { "$ne": currentId })
.or([
{email: new RegExp(req.param('searchTerm'), 'i')},
{displayName: new RegExp(req.param('searchTerm'), 'i')}
]).
.select('displayName email profileImageURL')
.limit(20)
.exec(function(err, users) {
});
或者:
User.find({ "_id": { "$ne": currentId })
.or([
{email: new RegExp(req.param('searchTerm'), 'i')},
{displayName: new RegExp(req.param('searchTerm'), 'i')}
])
.select('displayName email profileImageURL')
.limit(20)
.exec(function(err, users)
或者甚至只是作为原生数据结构。毕竟是 JavaScript:
User.find(
{
"_id": { "$ne": currentId },
"$or": [
{ "email": new RegExp(req.param('searchTerm'), 'i')},
{ "displayName": new RegExp(req.param('searchTerm'), 'i')}
],
},
'displayName email profileImageURL')
.limit(20)
.exec(function(err, users) {
});
因此您不需要“帮助器”方法,这也会导致代码更长且更不灵活。数据结构在 JavaScript 等动态语言中很容易操作。