Как выбрать документ по идентификатору с помощью Sails-Mongo?
User.find({ _id: { '!': user.id } }, function foundFriends (err, friends) {
if(err) return next(err);
res.view({
friends: friends
});
});
MONGODB :
{
_id: ObjectId("53b942f7c8638f7b17670acc"),
name: "PH",
admin: true,
online: false,
encryptedPassword: "$2a$10$PjcPRgL67ZSOWDjmEwTkvu30xKeDXdCwgZ.D0.bjyDRw9sOfS/4UK",
createdAt: ISODate("2014-07-06T12:37:11.522Z"),
updatedAt: ISODate("2014-07-09T18:22:47.25Z")
}
Этот код не работает, я хотел бы выбрать документ по идентификатору. Я не знаю, что я должен сделать, чтобы исправить это в моем проекте паруса. Спасибо за помощь.
2 ответа
Есть несколько вещей, которые я вижу странно с вашим кодом.
1. Функция обратного вызова, как для паруса 10, должна выполняться с помощью.exec ()
2. Я думаю, что вы не должны искать _id
но только id
, Я думаю, что ватерлинии анализирует это подчеркивание.
Имея это в виду, ваш код должен выглядеть примерно так
User.find({ id: { '!': user.id } }).exec(function (err, friends) {
if(err) return next(err);
res.view({
friends: friends
});
});
Привет, ты можешь попробовать это для поиска, обновления или уничтожения по id с помощью sails-mongo через select
:
//Schema
module.exports = {
autoPK : false,
attributes : {
id : {
type: 'string',
primaryKey: true
},
name : {
type : 'string'
},
email : {
type : 'string'
}
}
}
// Find
User.find({
select : {id : user.id}
}).exec((err,record)=> {
if(err) return console.log(err,"err");
console.log(record,"record");
})
// Update
User.update({
select : {id : user.id}
},{
name : "Foo"
}).exec((err,record)=> {
if(err) return console.log(err,"err");
console.log(record,"record");
})
// Destroy
User.destroy({
select : {id : user.id}
}).exec((err,record)=> {
if(err) return console.log(err,"err");
console.log(record,"record");
})
Надеюсь, это поможет вам.
Вы можете попробовать это:
User.findOne({ _id : ObjectId(user.id.toString()) })
Надеюсь на эту помощь.