#mongodb #node.js #mongoose
#mongodb #node.js #mongoose
Вопрос:
Следующий тестовый скрипт говорит, что у меня 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, я получу другую историю:
$ 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()
Если вы создадите модель Mongoose под названием «Deal», она создаст и будет использовать коллекцию MongoDB под названием «deals».
Ответ №2:
вы пропустили утверждение :
"use Deal" [ use DATABASE_NAME ]
прежде чем делать
db.dealsite.count()
Комментарии:
1. Когда я подключаюсь к БД таким образом, она уже использует
dealsite
базу данных. Я также пытался просто вручную выбрать базу данных, но это не дало никакого эффекта. В руководстве есть примеры такого способа подключения: mongodb.org/display/DOCS /…2. да, не видел вашу строку подключения. извините. что возвращает функция FIND или FINDONE в вашей коллекции?