如何在 Mongoose 中执行查询?

发布于 2024-11-03 15:08:51 字数 1175 浏览 1 评论 0原文

> db.users.findOne();
{
    "_id" : ObjectId("4db8ebb4c693ec0363000001"),
    "fb" : {
        "name" : {
            "last" : "Sss",
            "first" : "Fss",
            "full" : "Fss"
        },
        "updatedTime" : "2011-04-27T09:51:01+0000",
        "verified" : true,
        "locale" : "en_US",
        "timezone" : "-7",
        "email" : "[email protected]",
        "gender" : "male",
        "alias" : "abc",

        "id" : "17447214"
    }
}

这就是我的 Mongo 对象。现在我想通过 Mongoose 找到它:

User.findOne( { gender: "male" }, function(err, docs){
    console.log(err);  //returns Null
    console.log(docs);  //returns Null.
});

那不起作用!这也不是:

User.findOne( { fb: {gender:"male"} }, function...

空,空。

这就是我的全部事情:

app.get('/:uid',function(req,res){
    params = {}
    User.findOne({ $where : "this.fb.gender == 'male' " }, function(err, docs){
        console.log(docs);
    });
    res.render('user', { locals:params });
});
> db.users.findOne();
{
    "_id" : ObjectId("4db8ebb4c693ec0363000001"),
    "fb" : {
        "name" : {
            "last" : "Sss",
            "first" : "Fss",
            "full" : "Fss"
        },
        "updatedTime" : "2011-04-27T09:51:01+0000",
        "verified" : true,
        "locale" : "en_US",
        "timezone" : "-7",
        "email" : "[email protected]",
        "gender" : "male",
        "alias" : "abc",

        "id" : "17447214"
    }
}

So that's my Mongo object. Now i want to find it via Mongoose:

User.findOne( { gender: "male" }, function(err, docs){
    console.log(err);  //returns Null
    console.log(docs);  //returns Null.
});

That doesn't work! Neither does this:

User.findOne( { fb: {gender:"male"} }, function...

Null, null.

This is my entire thing:

app.get('/:uid',function(req,res){
    params = {}
    User.findOne({ $where : "this.fb.gender == 'male' " }, function(err, docs){
        console.log(docs);
    });
    res.render('user', { locals:params });
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

故事与诗 2024-11-10 15:08:51

我是猫鼬的作者之一。您可以通过以下几种方式之一执行此查询:

  • find 语法

    User.findOne({'fb.gender': '男'},回调);
    
  • where 语法

    User.where('fb.gender', '男').findOne(callback);
    
  • 命名范围语法

    UserSchema.namedscope('男性').where('fb.gender', '男性');
    // ...
    var User = mongoose.model('User', UserSchema);
    
    // 现在您可以更简洁、更惯用地编写查询
    User.male.findOne(回调);
    

I'm one of the authors of mongoose. You can do this query in one of several ways:

  • find syntax

    User.findOne({'fb.gender': 'male'}, callback);
    
  • where syntax

    User.where('fb.gender', 'male').findOne(callback);
    
  • named scope syntax

    UserSchema.namedscope('male').where('fb.gender', 'male');
    // ...
    var User = mongoose.model('User', UserSchema);
    
    // Now you can write queries even more succinctly and idiomatically
    User.male.findOne(callback);
    
鯉魚旗 2024-11-10 15:08:51

试试这个:

User.findOne( { $where : "this.fb.gender == 'male' " } )

或者

User.findOne( { fb.gender : "male" } )

Try this :

User.findOne( { $where : "this.fb.gender == 'male' " } )

or

User.findOne( { fb.gender : "male" } )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文