MongoDB $哪里不能正常工作

我环顾四周,尝试各种文档,以获得MongoDB中的$where子句为我工作,但它不会工作。

这是我的目标:

 var UserProfiles = [{ userProfileID: "3f8c553c-3633-4fe9-a007-4346a783450c", firstName: 'Austin', lastName: 'Hunter', email: 'ahunter8....com', token: '', platform: '', password: 'admin', companyProfileID: "86660a5b-7f61-4238-889d-1cc3087947b9", authentication: '' 

} ….

有几个“configuration文件”插入到UserProfiles对象中。 这只是第一个。

这里是我插入集合:

 MongoClient.connect(url, function(err, db) { if (err) { console.log(err); } else { console.log("We are connected"); } var collection = db.collection('UserProfile'); for (var i = 0; i < UserProfiles.length; i++) { collection.insert(UserProfiles[i], function(err, result) { if (err) { console.log(err); } else { console.log(result); } }); } db.close(); }); 

现在,我正在尝试search我的集合中传入的电子邮件和companyProfileID。 如果他们都匹配,然后返回该configuration文件。 我认为$where子句将是最好的,但我不能得到它的工作。

这里是我试图find():

 function getUserProfile(passInEmail, companyID, callback) { MongoClient.connect(url, function(err, db) { if (err) { console.log(err); } else { console.log("We are connected"); } var collection = db.collection('UserProfile'); collection.find({$where: "this.email == passInEmail"}, function(err, result) { if (err) { console.log(err); callback(err); } else if (result.length) { console.log(result); callback(result); } else { callback(err); console.log("No document found"); } }); db.close(); }); } 

我试图search集合,如果对象电子邮件匹配传入的电子邮件和对象companyProfileID匹配传入公司ID然后成功。

在你的情况下, $where子句不是最好的。
你应该做的只是:

 //userIdParam ad emailParam are two variables collection.find({userProfileID: userIdParam, email: emailParam}) .toArray(function(err, result) { if (err) { console.log(err); callback(err); } else if (result.length) { console.log(result); callback(result); } else { callback(err); console.log("No document found"); } }); 

看看这里的文档