繁体   English   中英

如何使用猫鼬查询mongoDB?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM