Cannot use 'in' operator to search for '_id' in
18,091
Solution 1
This error is not specific to Mongoose; it would show if obj
is not an object, but a string for instance:
var obj = 'Account';
'id' in obj;
// TypeError: Cannot use 'in' operator to search for 'id' in Account
Assuming that it's not a Mongoose issue, you'd be looking somewhere here:
at Object.findOrCreateOneForTwitter
(/webroot/api.domain.com/production/models/account.coffee:60:17)
Solution 2
Incidentally, you will get the same error from the dojo parser if you try to load an AMD module and you use require
instead of define
to define the module.
Comments
-
optikfluffel almost 2 years
I'm trying to get an existing user document using mongoose with express but I only get this:
/webroot/api.domain.com/production/node_modules/mongoose/lib/document.js:162 if (obj && '_id' in obj) continue; ^ TypeError: Cannot use 'in' operator to search for '_id' in Account at model.Document._buildDoc (/webroot/api.domain.com/production/node_modules/mongoose/lib/document.js:162:27) at model.Document (/webroot/api.domain.com/production/node_modules/mongoose/lib/document.js:67:20) at model.Model (/webroot/api.domain.com/production/node_modules/mongoose/lib/model.js:33:12) at new model (/webroot/api.domain.com/production/node_modules/mongoose/lib/model.js:1663:11) at Object.model (/webroot/api.domain.com/production/node_modules/mongoose/lib/model.js:1662:14) at Object.findOrCreateOneForTwitter (/webroot/api.domain.com/production/models/account.coffee:60:17) at module.exports.callback.error (/webroot/api.domain.com/production/endpoints/twitter.coffee:67:34) at Twitter.get (/webroot/api.domain.com/production/node_modules/ntwitter/lib/twitter.js:85:7) at passBackControl (/webroot/api.domain.com/production/node_modules/oauth/lib/oauth.js:361:11) at IncomingMessage.exports.OAuth._performSecureRequest.request.on.callbackCalled (/webroot/api.domain.com/production/node_modules/oauth/lib/oauth.js:380:9)
Is there any known fix for that? Thanks.