Я огляделся и попробовал все виды документов, чтобы получить предложение $where
в MongoDB, чтобы работать на меня, но это просто не сработает.
Вот мой объект:
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: ''
} ....
есть несколько "профили", вставленные в UserProfiles Object. Это только первый.
Здесь я вставляя в коллекции:
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();
});
Сейчас я пытаюсь найти свою коллекцию сдавший в электронной почте и companyProfileID. Если оба они совпадают, верните этот профиль. Я думал, что предложение $where
будет лучше, но я не могу заставить его работать.
Здесь я пытаюсь найти():
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();
});
}
Я пытаюсь найти коллекцию и если объект электронной почты соответствует переданному в электронной почте и объект companyProfileID соответствует переданному в CompanyID тогда успех.
должен быть 'this.email == 'passInEmail'' или' this.email.indexOf (' passInEmail ') == 0' – gianlucatursi
Хорошо. MongoClient найти верните курсор, чем вы можете цитировать с объектом, возвращаемым 'collection.find ({$ where:" this.email == passInEmail "})' ИЛИ вы можете использовать toArray: 'collection.find ({$ where:" this.email == passInEmail "}). toArray (function() {})' – gianlucatursi
По-прежнему документ не найден. Я получил ошибку «Не могу прочитать свойство» indexOf «неопределенной» ошибки. –