2016-05-24 2 views
0

Я использую Waterline в своем приложении Sails.js с адаптером парусов-монго. Я пытаюсь получить запись из моего поиска в MongoDB по _id. Это то, что я пробовал:Sails.js Waterline sails-mongo findOne

Case.findOne({id: args.itemId}).exec(function(err, retObj) {...} 
Case.findOne({_id: args.itemId}).exec(function(err, retObj) {...} 
Case.findOne({_id: { 'contains': args.itemId} }).exec(function(err, retObj) {...} 
Case.findOne({_id: { 'like': '%' + args.itemId} }).exec(function(err, retObj) {...} 

и никто из них не возвращает объект. Единственное, что я нашел, что возвращает объект является:

Case.findOne({_id: { '!': args.itemId} }).exec(function(err, retObj) {...} 

, который я нашел в this StackOverlow answer. Но ... это оператор not. Поэтому, когда он работал, когда у меня была только одна запись в коллекции, она не возвращает правильный объект. Я не уверен, почему он даже работал вообще, когда в коллекции был один объект.

Что мне нужно сделать, чтобы получить объект по его идентификатору с парусами-монго?

ответ

0

После дополнительного поиска и поиска Sails.js Attributes documentation имеет тип «objectid», и как только я установил его в файле модели Sails.js, поиск работал отлично.

Я закончил с этим запросом:

Case.findOne({id: args.itemId}).exec(function(err, item) { ... } 

Надеется, что это помогает другим!

Смежные вопросы