सबसे अधिक संभावना है कि आपकी पहली क्वेरी काम नहीं करेगी क्योंकि MongoDB उम्मीद कर रहा है कि _id
एक ऑब्जेक्ट आईडी है, न कि एक स्ट्रिंग (जो req.params.id
शायद है):
var ObjectId = require('mongoose').Types.ObjectId;
exports.getUser = function (req, res) {
var id = req.params.id;
var $or = [ { username : id } ];
// Does it look like an ObjectId? If so, convert it to one and
// add it to the list of OR operands.
if (ObjectId.isValid(id)) {
$or.push({ _id : ObjectId(id) });
}
User.find({ $or : $or }).exec(function (err, collections) {
// TODO: check for errors
res.send(collections);
});
};