قم بتحسين أداء الاستعلام أدناه واكتب نسخة محسنة. وفي النهاية، اكتب قائمة بالتغييرات التي تم إجراؤها ولماذا.

مرحلة البحث الثابتة: أي = {
 بحث $: {
 الفهرس: 'الانسحاب\_index'،
 مُجَمَّع: {
 يجب: []،
 يجب: []،
 },
 returnStoredSource: صحيح،
 },
 };
 إذا (بحث) {
 إذا (isValidId(بحث) && بحث كامل) {
 searchStage.$search.compound.must.push({
 يساوي: {
 المسار: '\_id'،
 القيمة: أنواع جديدة.ObjectId(بحث)،
 },
 });
 } آخر {
 const isEmail = REGEXS.autocompleteEmail.test(search);

 إذا (البريد الإلكتروني) {
 searchStage.$search.compound.should.push(
 {
 نص: {
 المسار: "البريد الإلكتروني الأساسي"،
 استعلام: بحث،
 },
 },
 {
 نص: {
 المسار: "userDetail.email"،
 استعلام: بحث،
 },
 }
 );
 } آخر {
 searchStage.$search.compound.should.push(
 {
 نص: {
 المسار: "order.orderId"،
 استعلام: بحث،
 },
 },
 {
 نص: {
 المسار: 'order.trackingId'،
 استعلام: بحث،
 },
 },
 {
 نص: {
 المسار: "order.stockxOrderId"،
 استعلام: بحث،
 },
 },
 {
 نص: {
 المسار: "order.stockxTrackingId"،
 استعلام: بحث،
 },
 },
 {
 نص: {
 المسار: "order.myUsTrackingId"،
 استعلام: بحث،
 },
 },
 {
 نص: {
 المسار: "userDetail.username"،
 استعلام: بحث،
 },
 }
 );
 }

 إذا (البحث الكامل) {
 searchStage.$search.compound.should.push(
 {
 نص: {
 المسار: "اسم العنصر"،
 استعلام: بحث،
 },
 },
 {
 نص: {
 المسار: "item.assetId"،
 استعلام: بحث،
 },
 }
 );
 }
 }
 }
 إذا (Object.keys(filterQuery).includes('status')) {
 searchStage.$search.compound.must.push({
 نص: {
 الاستعلام: filterQuery.status،
 المسار: "الحالة"،
 },
 });
 }
 إذا (معرف المستخدم) {
 searchStage.$search.compound.must.push({
 يساوي: {
 القيمة: أنواع جديدة.ObjectId(userId)،
 المسار: "المستخدم"،
 },
 });
 }
 إذا (Object.keys(filterQuery).includes('order.status')) {
 searchStage.$search.compound.must.push({
 نص: {
 استعلام: filterQuery['order.status']،
 المسار: "order.status"،
 },
 });
 }
 إذا (Object.keys(filterQuery).includes('item.type')) {
 searchStage.$search.compound.must.push({
 نص: {
 استعلام: filterQuery['item.type']،
 المسار: "نوع العنصر"،
 },
 });
 }
 إذا (Object.keys(filterQuery).includes('user.depositedValue')) {
 searchStage.$search.compound.must.push({
 يتراوح: {
 gte: parseFloat(filterQuery['user.depositedValue']),
 المسار: "userDetail.depositedValue"،
 },
 });
 }
 إذا (Object.keys(filterQuery).includes('shippingAddress.country')) {
 filterQuery['shippingAddress.country'].forEach((country: string) => {
 searchStage.$search.compound.must.push({
 نص: {
 المسار: "shippingAddress.country"،
 الاستعلام: دولة,
 },
 });
 });
 }
const isEmail = REGEXS.autocompleteEmail.test(search);

 إذا (البريد الإلكتروني) {
{"evolved_from": null, "kind": "human", "source": "ewof/sharegpt-instruct-unfiltered-deduped"}