![](/img/trans.png)
[英]How to create a query in Mongoose/Mongodb to obtain this json?
[英]How to query mongoDB using mongoose?
如何使用mongoose和node.js查询MongoDB? 我拥有将JSON对象插入数据库的位置,但是尝试从数据库返回JSON对象的所有方法都返回null或仅返回有关数据库的信息。
是否有一些使用猫鼬的好方法能够类似于该方法查询数据库:
var cursor = db.collection.find()
var JSONobject = cursor.next()
现在是我的代码中的内容:
mongoose.connect('mongodb://localhost/myDB');
mongoose.connection.on('error', console.error.bind(console, 'connection error:'));
var cursor = mongoose.connection.db.contents.find();
console.log(cursor.next());
这将在行上引发错误:
var cursor = mongoose....
声称“无法调用未定义的方法”。
请注意,我的集合“内容”确实存在,并且包含一个JSON文档。 我知道这一点是因为我使用mongo shell手动导航到了集合。
编辑:我愿意接受替代方法来查询数据库。 我只希望能够一次从数据库中返回一个JSON对象,同时跟踪客户端在数据库中的位置。
一种使用猫鼬查询mongoDB的方法如下:
Content.findOne().exec(function(err,docs){console.log(docs)});
文档包含JSON对象。 像访问其他对象一样访问其属性。
注意,此方法使用异步回调。 因此,您无法将JSON对象文档存储到变量中,以便在函数外部使用JSON文档信息。 因此,您需要对函数内部的JSON文档对象信息执行所需的任何操作。
例如,我需要查询信息来为我的get api提供文件路径。 这样,结果如下:
//get
app.get('/api/media/', function(req,res){
Content.findOne().exec(function(err,docs){res.sendFile(path.join(__dirname, '/api/media/', docs.filename))});
});
注意,内容是我的架构的模型,其参数之一是文件名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.