如何使用Node.js查询Mongo
How to query a Mongo with Node.js?
我意识到这听起来像是一个完全多余的问题,但请听我说完。
最终,我想从dom中查询MongoDB,但在此之前,我可以从路由模块中查询。这是我的问题:
var db = require('./config/db.js');
router.get('/test', function (req, res) {
res.jsonp(db.getData('sampleSet'));
});
"sampleSet"是我正在查询的集合的名称。getData函数应该从MongoDB中获取数据。我把它放在MongoClient连接函数的回调中,因为我想不出其他方法。从我的角度来看,由于getData()
返回一个带有回调的函数findData
,因此它应该返回数据。但事实并非如此。console.log返回数据,但必须返回未定义的数据。
function findData (db, c, callback) {
var collection = db.collection(c);
collection.find().toArray(function(err, docs) {
assert.equal(err, null);
callback(docs);
});
};
MongoClient.connect(url, function(err, db) {
assert.equal(err, null);
console.log('CONNECTED CORRECTLY TO SERVER.');
exports.getData = function(c) {
return
findData(db, c, function(docs) {
console.log('FOUND THE FOLLOWING RECORDS: ');
return docs;
db.close();
});
}
});
如果var db = require('./config/db.js');
是您的模式,而'sampleSet'
是集合名称,那么您可以使用此获取数据
router.get('/test', function (req, res) {
db.sampleSet.find({},function(err,data){
if(err)
throw err;
else
res.send(data)
});
});
但为此,您必须以这种方式编写db.js
文件
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var sampleSetSchema = new Schema({
//Your schemas goes here..
// fields : types
// ..
// ..
}, {
collection: "sampleSet" // collection name
});
// // Export the Mongoose model
var SampleSet = mongoose.model('SampleSet', sampleSetSchema);
module.exports = {
SampleSet: SampleSet
}
您的findData
方法没有返回任何内容。
它将docs
传递给callback
,callback
将docs
再次返回给findData
方法。但是findData
没有返回。
因此,如果findData
不返回任何内容,那么getData
也不会返回任何内容。
相关文章:
- 如何在 Meteor 中的 Mongo 查询中使用变量作为字段名称
- Meteor:在模板接受Mongo查询结果之前修改它的最佳实践
- JS/Mongo在JSON中使用多个$或进行查询
- 当查询返回对象时,Express Mongo回调返回undefined
- 按时钟范围查询mongo文档-正向和反向
- 如何使用 i18n 构建对 Mongo 的查询
- Mongo 查询以从集合数组返回特定值
- Javascript 到 Mongo 查询 passthru.安全?不好的做法
- 如何根据 Mongo 中集合中的布尔值有条件地查询密钥
- 客户端查询延迟 - Meteor's Mongo Collections
- 流星:在Mongo数据库查询上隐藏/显示模板
- 使用猫鼬查询 mongo 中集合的命名文本索引
- 使用 javascript 从 Mongo 集合中查询数据
- Mongo查询今天是否's的日期在另外两人之间
- 如何使用本机节点驱动程序在节点服务器上执行mongo查询字符串
- 嵌套字段中的Mongo查询
- Mongo查询没有't不包括我的筛选子句
- 如何使用Node.js查询Mongo
- 基于匹配或正则表达式的查询字符串查询Mongo
- 不能让我的地理空间查询工作.在Node中查询Mongo