2011-05-17 32 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