2
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 选择文档。我不知道我应该怎么做才能在我的风帆项目中解决这个问题。谢谢您的帮助。

4

3 回答 3

2

我看到你的代码有几件事很奇怪。
1. 对于sails 10 的回调函数应该使用.exec()
2. 我认为你不应该搜索_id而只搜索id。我认为水线会解析这个下划线。

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

User.find({ id: { '!': user.id } }).exec(function (err, friends) {
    if(err) return next(err);
    res.view({
        friends: friends
    });
});
于 2014-09-26T15:48:24.207 回答
1

嗨,您可以尝试使用sails-mongo通过以下方式查找、更新或销毁ID 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");
 })

希望这对你有帮助。

于 2016-11-07T02:49:07.323 回答
0

你可以试试这个:

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

希望这有帮助。

于 2019-08-22T15:29:43.233 回答