无法从Node中的Mongodb过滤DB结果

时间:2013-12-12 02:55:28

标签: node.js mongodb

我正在运行tutorial我在网上找到的Node.js和Mongo DB,它提供了以下代码:

    collection.find({},{},function(e,docs){
        res.render('userlist', {
            "userlist" : docs
        });
    });

为所有用户搜索mongo数据库数据库。代码工作正常,但是当我尝试将其修改为

    collection.find({'username': "testuser1"},{},function(e,docs){
        res.render('userlist', {
            "userlist" : docs
        });
    });

为了获得一个特定用户,我仍然可以获得所有结果。

如果我将相同的collection.find()命令输入到mongo控制台,它将按预期返回单个结果。

发生了什么事?

2 个答案:

答案 0 :(得分:1)

用户名必须在引号中。

collection.find({'username':'testuser1'},{},function(e,docs){
    res.render('userlist', {
        "userlist" : docs
    });
});

......应该有用。

我相信原因是因为MongoDB使用BSON,需要引号,而JSON没有,但我可能会弄错。

答案 1 :(得分:0)

我使用的是与Chris S.相同的教程。

在我的index.js上使用此代码

   /* GET Userlist page. */
   router.get('/userlist1', function(req, res) {
    var db = req.db;
    var collection = db.get('questions1');
    collection.find({},{},function(e,docs){
        res.render('userlist1', {
            "userlist" : docs
        });
    });
    });

我从我的收藏中获取所有值。这很好,但如何从同一个集合中获取单个文档?或者甚至更好,如何随机获取该单个文档?因此,如果您多次查询它,则返回的值每次都会更改。

顺便说一句,该教程非常适合从头创建一些东西,并且有点理解应用程序ja数据库连接的工作原理。

相关问题