Mongoose 说我有 46 条记录,mongoDB 说我有 0 条记录?

Posted

技术标签:

【中文标题】Mongoose 说我有 46 条记录,mongoDB 说我有 0 条记录?【英文标题】:Mongoose is saying I have 46 records, mongoDB says I have zero? 【发布时间】:2011-08-26 23:18:25 【问题描述】:

以下测试脚本显示我有 46 条记录:

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var DealSchema = new Schema(
  title : String,
);

var Deal = mongoose.model('Deal', DealSchema);  

mongoose.connect('mongodb://localhost/dealsite');
mongoose.connection.on("open", function()
  console.log("Mongoose connected");
  Deal.count(, function( err, count)
    console.log( "Records:", count );
  )
);

输出:

$ node testmongo.js 
Mongoose connected
Records: 46

如果我尝试使用 mongo shell 读取数据线,我会得到不同的结果:

$ mongo localhost/dealsite
MongoDB shell version: 1.4.4
url: localhost/dealsite
connecting to: localhost/dealsite
type "exit" to exit
type "help" for help
> db.dealsite.count()
0
> db.dealsite.Deal.count()
0

我的记录藏在哪里?

【问题讨论】:

【参考方案1】:

在 MongoDB 中,尝试:

use dealsite
db.deals.count()

如果您创建一个名为“Deal”的 Mongoose 模型,它将创建并使用一个名为“deals”的 MongoDB 集合。

【讨论】:

【参考方案2】:

你错过了声明:

"use Deal"    [ use DATABASE_NAME ]

做之前

db.dealsite.count()

【讨论】:

当我以这种方式连接到数据库时,它已经在使用dealsite 数据库。我也试过手动选择数据库,但没有效果。手册中有这种连接方式的例子:mongodb.org/display/DOCS/… 是的,没有看到您的连接字符串。对不起 。您的收藏中的 FIND 或 FINDONE 会返回什么?

以上是关于Mongoose 说我有 46 条记录,mongoDB 说我有 0 条记录?的主要内容,如果未能解决你的问题,请参考以下文章

Mongo (+Mongoose) 错误:无法找到 $geoNear 查询的索引

使用 connect-mongo 时处理数据库错误

使用 connect-mongo 时处理数据库错误

通过 express、mongoose 和 angular 删除 mongo 文档时出现 404

使用 mongoose 将 mongo 对象的字段设置为空

Mongoose 虚拟填充和聚合