Node.js / mongoDB, не может получить записи - PullRequest
0 голосов
/ 10 апреля 2011

В моем приложении node.js / express, когда я заглядываю в mongoDB, я получаю следующее:

 > db.things.find()[0]._id                                
 ObjectId("4da06702584ca3f402000001")

Существует коллекция с идентификатором 4da06702584ca3f402000001.Но когда я использую запрос, я не могу получить его обратно:

app.get('/thing/show', function(req, res){
  res.writeHead(200, {'content-type': 'text/plain'});
  Thing = mongoose.model('Thing');
  id = "4da06702584ca3f402000001";
  Thing.find({ _id : id }, function(thing){
     console.log("THING RETRIEVED:" + thing);
     res.write(JSON.stringify(thing));
  });
  res.end();
});

Ничего не возвращается.

Есть идеи?

* ОБНОВЛЕНИЕ *

Это также не работает:

Thing.find({ _id:ObjectId("4da06702584ca3f402000001")}, function(thing){

Возникает следующая ошибка:

Error: This is an abstract interface. Its only purpose is to mark fields as ObjectId in     the schema creation.
 at ObjectId (/usr/local/lib/node/.npm/mongoose/1.1.24/package/lib/mongoose/schema.js:426:9)...

* РЕШЕНИЕ *

Мой плохой ....

Проблема не в функции поиска, а в методе обратного вызова, который я использую ... Я предоставил только один единственный параметр (вещь), который я должен предоставить (err, tring).

Ответы [ 2 ]

1 голос
/ 10 апреля 2011

Проблема была в функции обратного вызова, где я должен был использовать (ошибаться, вещь) в качестве параметров вместо только (вещь).

0 голосов
/ 10 апреля 2011

Попробуйте:

Thing.findById(id, function(thing){
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...