我正在将我的数据库连接转换为MongoClient,并且很难更改以前代码的部分内容。
以前,为了从集合中检索所有文档,我会使用:
$.getJSON('/users/infolist', function(data) {
$.each(data, function(){
//cycles through each document and do whatever
});
});
会调用以下内容:
router.get('/infolist', function(req, res) {
var db = req.db;
var collection = db.get('empcollection');
collection.find({$query: {}, $orderby: {age:1}},{},function(e,docs){
res.json(docs);
});
});
在线查看文档后,我仍然没有想出如何使用MongoClient复制此行为。我已经建立了连接,并且可以查询数据库,但是返回集合,并且如上所述在每个文档中循环都不起作用。
非常感谢任何建议或帮助。
答案 0 :(得分:1)
根据您的解释,我了解您希望使用本机mongodb
驱动程序从集合中检索文档列表,使用循环更新它们,然后将它们检索到客户端:
var MongoClient = require('mongodb').MongoClient;
//Establish a connection to your database
MongoClient.connect('mongodb://your/connection/string', function(err, db) {
if(err) {
console.log('There was an error connecting to the database');
}
//Map empcollection to a variable
var collection = db.collection('empcollection');
//Query the collection and retrieve the documents in an array
collection.find({}).toArray(function(err, docs)) {
if(err) {
console.log('There was an error retrieveing the matched documents');
}
//Loop through the documents and change them accordingly
for(var i = 0; i < docs.length; i++) {
//........
}
//Retrieve the updated data
res.json(docs);
}
});
});