Как выбрать документ по идентификатору с помощью 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()) })

Надеюсь на эту помощь.

Другие вопросы по тегам