我正在运行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控制台,它将按预期返回单个结果。
发生了什么事?
答案 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数据库连接的工作原理。