Angenommen, ich habe ein Dokument, das die folgendes enthält:Abfrage, die Array sucht und gibt ein Objekt Element
var userSchema = Schema({
_id: Number,
fName: String,
lName: String,
email: String,
braintreeflag : {type:Boolean, default: false},
balance: {type:Number, default: 0},
braintreeId : {unique:true, type:Number, default:0},
notificationHubTag: String,
defaultPaymentMethod: Number,
braintreeTokens : [{id: Number, token : String}]
});
exports.getDefaultPaymentMethodToken = function(uId,defaultId, res){
//TODO query
}
Ich möchte sehen in dem Dokument, in dem _id: uid und ich möchte das Array-Element zu finden, wo id : defaultId und gibt dann das Token in diesem Element zurück. Suchen Sie auf SO, fand ich, was wie die beste Lösung aussieht, aber es ist nicht getestet:
User.findOne({_id:uId, 'braintreeTokens.id': defaultId}, {'braintreeTokens.$':1}, function(err,user){
})
Was wenn mehrere Personen den gleichen Nachnamen haben? – Saleem