Ich habe ein Schema, das wie folgt aussieht:Mongoose when-Abfrage innerhalb oder-Abfrage
var UserSchema = new Schema({
name: {type : String, required: true},
location_a: {type: [Number], default: [0,0], index: '2dsphere'},
location_b: {type: [Number], default: [0,0], index: '2dsphere'}
});
Die Eingabe meiner Suche hat einen Standort und Entfernung. Jetzt möchte ich die Benutzer, die entweder location_a OR location_b in der Nähe des gesuchten Standortes haben.
Ich habe eine Abfrage versucht, die wie folgt aussieht:
query = query.and([
{ $or: [
query.where('location_a').near({
center: {type: 'Point', coordinates: [long, lat]},
maxDistance: distance * 1000, spherical: true
}),
query.where('location_b').near({
center: {type: 'Point', coordinates: [long, lat]},
maxDistance: 100 * 1000, spherical: true
})
]}
]);
Aber es macht meine App Absturz mit: „Auslöser Range: Maximale Call-Stack-Größe überschritten“
Ihr 'und' macht nichts, und Ihre' [] 'Klammern um Ihr' $ oder' sind an den falschen Stellen –
Sind Sie sicher, dass das [] das Problem ist? Wo sollte ich sie stattdessen platzieren? – Vetm
Bitte zeigen Sie mir, wie Sie Abfrage zuweisen, bevor Sie die obige Abfrage durchführen –