如何用Sails-mongo按id选择文件?

时间:2014-07-09 18:52:28

标签: javascript node.js sails.js 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")
}

此代码不起作用,我想按ID选择文档。我不知道在我的风帆项目中应该做些什么来解决这个问题。谢谢你的帮助。

3 个答案:

答案 0 :(得分:2)

我看到的一些事情对你的代码很奇怪 1.应使用.exec()执行与风帆10相同的回调函数 2.我认为你不应该只搜索_id而只搜索id。我认为水线解析了这个下划线。

考虑到这一点,您的代码应该类似于

User.find({ id: { '!': user.id } }).exec(function (err, friends) {
    if(err) return next(err);
    res.view({
        friends: friends
    });
});

答案 1 :(得分:1)

您好,您可以通过select尝试使用sails-mongo通过ID进行查找,更新或销毁:

 //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");
 })

希望这对你有所帮助。

答案 2 :(得分:0)

您可以尝试以下方法:

User.findOne({ _id : ObjectId(user.id.toString()) })

希望获得帮助。