2011-05-17 59 views
0

下面的测试脚本,说我有46个记录:猫鼬说我有46条记录,mongoDB说我有零?

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 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 

我的记录隐藏在哪里?

回答

5

在MongoDB中之前,请尝试:

use dealsite 
db.deals.count() 

如果你创建了一个名为 “新政” 猫鼬模型,它会创建并使用名为“deals”的MongoDB集合。

+0

啊哈!谢谢。 :) – 2011-05-17 07:56:17

2

你错过了声明:

"use Deal" [ use DATABASE_NAME ] 

db.dealsite.count() 
+0

当我以这种方式连接到数据库时,它已经使用'dealsite'数据库。我也尝试过只是手动选择数据库,但它没有效果。有这种连接手册的例子:http://www.mongodb.org/display/DOCS/Overview+-+The+MongoDB+Interactive+Shell#Overview-TheMongoDBInteractiveShell-Starting – 2011-05-17 05:53:05

+0

是的,没有看到你的连接字符串。对不起。你的收藏上的FIND或FINDONE会返回什么? – DhruvPathak 2011-05-17 06:11:48