【发布时间】:2015-05-21 12:03:18
【问题描述】:
Mongoose 与我的 Node 和 Mongo 数据库交互的方式有一个非常奇怪的问题。
我正在使用 express 创建一个基本的 get api 路由来从我的 mongodb 中获取一些数据。
我有一个名为 test 的数据库,它有一个名为“billings”的集合
所以架构和路由非常基本
apiRouter.route('/billing/')
.get(function(req, res) {
Billing.find(function(err, billings) {
if (err) res.send(err);
// return the bills
res.json(billings);
});
});
“计费”是我的猫鼬模式。只包含 1 个对象 {test: string}
这很好用,我的 mongo 数据库中的所有项目都得到了响应,名为“billings”,它只有一个项目 {test: “success”}
接下来我创建了一个名为“historys”的集合
我设置的设置与我的帐单完全相同。
apiRouter.route('/historys/')
// get all the history
.get(function(req, res) {
Historys.find(function(err, historys) {
if (err) res.send(err);
// return the history
res.json(historys);
});
});
“历史”又是我的猫鼬模式。这个模式在设置上与我的帐单相同,因为我没有任何真实数据,字段相同,我只是有一个测试字段,所以从帐单和历史记录返回的 json 对象应该是
{ 测试:“成功” }
然而,这次我没有取回任何数据,我只是得到了一个空对象
[].
我多次检查我的代码以确保可能丢失了大写字母或某个地方的逗号等,但代码是相同的。我的 mongodb 中的设置和格式是相同的。我进入 robomongo 并查看了数据库,所有内容都正确命名。
除了,我现在有 2 个新系列。
我的原创:“历史”和一个全新的收藏“历史”
一旦我修复了我的 api 路线去查看历史而不是历史,我就能够成功地获取测试数据。但是,我仍然无法从历史记录中提取数据,它就像它不存在但我刷新时它在我的 robomongo 控制台中一样。
我在所有代码中搜索了任何提及历史的内容,结果为 0。系统在哪里知道要修复我收藏的语法?
【问题讨论】:
-
您是如何将
{ test: "success" }插入到Historys集合中的?
标签: node.js mongodb express mongoose