@payloadcms/db-mongodb 3.59.0-internal.917c03d → 3.59.0-internal.929dda3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- import { type FindDistinct } from 'payload';
1
+ import type { FindDistinct } from 'payload';
2
2
  export declare const findDistinct: FindDistinct;
3
3
  //# sourceMappingURL=findDistinct.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findDistinct.d.ts","sourceRoot":"","sources":["../src/findDistinct.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,SAAS,CAAA;AAS3D,eAAO,MAAM,YAAY,EAAE,YAiK1B,CAAA"}
1
+ {"version":3,"file":"findDistinct.d.ts","sourceRoot":"","sources":["../src/findDistinct.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,SAAS,CAAA;AAW3D,eAAO,MAAM,YAAY,EAAE,YAwO1B,CAAA"}
@@ -1,4 +1,4 @@
1
- import { getFieldByPath } from 'payload';
1
+ import { APIError, getFieldByPath } from 'payload';
2
2
  import { buildQuery } from './queries/buildQuery.js';
3
3
  import { buildSortParam } from './queries/buildSortParam.js';
4
4
  import { getCollection } from './utilities/getEntity.js';
@@ -35,11 +35,65 @@ export const findDistinct = async function(args) {
35
35
  if (fieldPathResult?.pathHasLocalized && args.locale) {
36
36
  fieldPath = fieldPathResult.localizedPath.replace('<locale>', args.locale);
37
37
  }
38
- const isHasManyValue = fieldPathResult && 'hasMany' in fieldPathResult.field && fieldPathResult.field.hasMany;
39
38
  const page = args.page || 1;
40
- const sortProperty = Object.keys(sort)[0]// assert because buildSortParam always returns at least 1 key.
39
+ let sortProperty = Object.keys(sort)[0]// assert because buildSortParam always returns at least 1 key.
41
40
  ;
42
41
  const sortDirection = sort[sortProperty] === 'asc' ? 1 : -1;
42
+ let currentFields = collectionConfig.flattenedFields;
43
+ let relationTo = null;
44
+ let foundField = null;
45
+ let foundFieldPath = '';
46
+ let relationFieldPath = '';
47
+ for (const segment of args.field.split('.')){
48
+ const field = currentFields.find((e)=>e.name === segment);
49
+ if (!field) {
50
+ break;
51
+ }
52
+ if (relationTo) {
53
+ foundFieldPath = `${foundFieldPath}${field?.name}`;
54
+ } else {
55
+ relationFieldPath = `${relationFieldPath}${field.name}`;
56
+ }
57
+ if ('flattenedFields' in field) {
58
+ currentFields = field.flattenedFields;
59
+ if (relationTo) {
60
+ foundFieldPath = `${foundFieldPath}.`;
61
+ } else {
62
+ relationFieldPath = `${relationFieldPath}.`;
63
+ }
64
+ continue;
65
+ }
66
+ if ((field.type === 'relationship' || field.type === 'upload') && typeof field.relationTo === 'string') {
67
+ if (relationTo) {
68
+ throw new APIError(`findDistinct for fields nested to relationships supported 1 level only, errored field: ${args.field}`);
69
+ }
70
+ relationTo = field.relationTo;
71
+ currentFields = this.payload.collections[field.relationTo]?.config.flattenedFields;
72
+ continue;
73
+ }
74
+ foundField = field;
75
+ if (sortAggregation.some((stage)=>'$lookup' in stage && stage.$lookup.localField === relationFieldPath)) {
76
+ sortProperty = sortProperty.replace('__', '');
77
+ sortAggregation.pop();
78
+ }
79
+ }
80
+ const resolvedField = foundField || fieldPathResult?.field;
81
+ const isHasManyValue = resolvedField && 'hasMany' in resolvedField && resolvedField;
82
+ let relationLookup = null;
83
+ if (relationTo && foundFieldPath && relationFieldPath) {
84
+ const { Model: foreignModel } = getCollection({
85
+ adapter: this,
86
+ collectionSlug: relationTo
87
+ });
88
+ relationLookup = {
89
+ $lookup: {
90
+ as: relationFieldPath,
91
+ foreignField: '_id',
92
+ from: foreignModel.collection.name,
93
+ localField: relationFieldPath
94
+ }
95
+ };
96
+ }
43
97
  let $unwind = '';
44
98
  let $group = null;
45
99
  if (isHasManyValue && sortAggregation.length && sortAggregation[0] && '$lookup' in sortAggregation[0]) {
@@ -74,6 +128,12 @@ export const findDistinct = async function(args) {
74
128
  $match: query
75
129
  },
76
130
  ...sortAggregation.length > 0 ? sortAggregation : [],
131
+ ...relationLookup ? [
132
+ relationLookup,
133
+ {
134
+ $unwind: `$${relationFieldPath}`
135
+ }
136
+ ] : [],
77
137
  ...$unwind ? [
78
138
  {
79
139
  $unwind
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/findDistinct.ts"],"sourcesContent":["import type { PipelineStage } from 'mongoose'\n\nimport { type FindDistinct, getFieldByPath } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport { getCollection } from './utilities/getEntity.js'\nimport { getSession } from './utilities/getSession.js'\n\nexport const findDistinct: FindDistinct = async function (this: MongooseAdapter, args) {\n const { collectionConfig, Model } = getCollection({\n adapter: this,\n collectionSlug: args.collection,\n })\n\n const session = await getSession(this, args.req)\n\n const { where = {} } = args\n\n const sortAggregation: PipelineStage[] = []\n\n const sort = buildSortParam({\n adapter: this,\n config: this.payload.config,\n fields: collectionConfig.flattenedFields,\n locale: args.locale,\n sort: args.sort ?? args.field,\n sortAggregation,\n timestamps: true,\n })\n\n const query = await buildQuery({\n adapter: this,\n collectionSlug: args.collection,\n fields: collectionConfig.flattenedFields,\n locale: args.locale,\n where,\n })\n\n const fieldPathResult = getFieldByPath({\n fields: collectionConfig.flattenedFields,\n path: args.field,\n })\n let fieldPath = args.field\n if (fieldPathResult?.pathHasLocalized && args.locale) {\n fieldPath = fieldPathResult.localizedPath.replace('<locale>', args.locale)\n }\n\n const isHasManyValue =\n fieldPathResult && 'hasMany' in fieldPathResult.field && fieldPathResult.field.hasMany\n\n const page = args.page || 1\n\n const sortProperty = Object.keys(sort)[0]! // assert because buildSortParam always returns at least 1 key.\n const sortDirection = sort[sortProperty] === 'asc' ? 1 : -1\n\n let $unwind: any = ''\n let $group: any = null\n if (\n isHasManyValue &&\n sortAggregation.length &&\n sortAggregation[0] &&\n '$lookup' in sortAggregation[0]\n ) {\n $unwind = { path: `$${sortAggregation[0].$lookup.as}`, preserveNullAndEmptyArrays: true }\n $group = {\n _id: {\n _field: `$${sortAggregation[0].$lookup.as}._id`,\n _sort: `$${sortProperty}`,\n },\n }\n } else if (isHasManyValue) {\n $unwind = { path: `$${args.field}`, preserveNullAndEmptyArrays: true }\n }\n\n if (!$group) {\n $group = {\n _id: {\n _field: `$${fieldPath}`,\n ...(sortProperty === fieldPath\n ? {}\n : {\n _sort: `$${sortProperty}`,\n }),\n },\n }\n }\n\n const pipeline: PipelineStage[] = [\n {\n $match: query,\n },\n ...(sortAggregation.length > 0 ? sortAggregation : []),\n ...($unwind\n ? [\n {\n $unwind,\n },\n ]\n : []),\n {\n $group,\n },\n {\n $sort: {\n [sortProperty === fieldPath ? '_id._field' : '_id._sort']: sortDirection,\n },\n },\n ]\n\n const getValues = async () => {\n return Model.aggregate(pipeline, { session }).then((res) =>\n res.map((each) => ({\n [args.field]: JSON.parse(JSON.stringify(each._id._field)),\n })),\n )\n }\n\n if (args.limit) {\n pipeline.push({\n $skip: (page - 1) * args.limit,\n })\n pipeline.push({ $limit: args.limit })\n const totalDocs = await Model.aggregate(\n [\n {\n $match: query,\n },\n {\n $group: {\n _id: `$${fieldPath}`,\n },\n },\n { $count: 'count' },\n ],\n {\n session,\n },\n ).then((res) => res[0]?.count ?? 0)\n const totalPages = Math.ceil(totalDocs / args.limit)\n const hasPrevPage = page > 1\n const hasNextPage = totalPages > page\n const pagingCounter = (page - 1) * args.limit + 1\n\n return {\n hasNextPage,\n hasPrevPage,\n limit: args.limit,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs,\n totalPages,\n values: await getValues(),\n }\n }\n\n const values = await getValues()\n\n return {\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n page: 1,\n pagingCounter: 1,\n totalDocs: values.length,\n totalPages: 1,\n values,\n }\n}\n"],"names":["getFieldByPath","buildQuery","buildSortParam","getCollection","getSession","findDistinct","args","collectionConfig","Model","adapter","collectionSlug","collection","session","req","where","sortAggregation","sort","config","payload","fields","flattenedFields","locale","field","timestamps","query","fieldPathResult","path","fieldPath","pathHasLocalized","localizedPath","replace","isHasManyValue","hasMany","page","sortProperty","Object","keys","sortDirection","$unwind","$group","length","$lookup","as","preserveNullAndEmptyArrays","_id","_field","_sort","pipeline","$match","$sort","getValues","aggregate","then","res","map","each","JSON","parse","stringify","limit","push","$skip","$limit","totalDocs","$count","count","totalPages","Math","ceil","hasPrevPage","hasNextPage","pagingCounter","nextPage","prevPage","values"],"mappings":"AAEA,SAA4BA,cAAc,QAAQ,UAAS;AAI3D,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,aAAa,QAAQ,2BAA0B;AACxD,SAASC,UAAU,QAAQ,4BAA2B;AAEtD,OAAO,MAAMC,eAA6B,eAAuCC,IAAI;IACnF,MAAM,EAAEC,gBAAgB,EAAEC,KAAK,EAAE,GAAGL,cAAc;QAChDM,SAAS,IAAI;QACbC,gBAAgBJ,KAAKK,UAAU;IACjC;IAEA,MAAMC,UAAU,MAAMR,WAAW,IAAI,EAAEE,KAAKO,GAAG;IAE/C,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE,GAAGR;IAEvB,MAAMS,kBAAmC,EAAE;IAE3C,MAAMC,OAAOd,eAAe;QAC1BO,SAAS,IAAI;QACbQ,QAAQ,IAAI,CAACC,OAAO,CAACD,MAAM;QAC3BE,QAAQZ,iBAAiBa,eAAe;QACxCC,QAAQf,KAAKe,MAAM;QACnBL,MAAMV,KAAKU,IAAI,IAAIV,KAAKgB,KAAK;QAC7BP;QACAQ,YAAY;IACd;IAEA,MAAMC,QAAQ,MAAMvB,WAAW;QAC7BQ,SAAS,IAAI;QACbC,gBAAgBJ,KAAKK,UAAU;QAC/BQ,QAAQZ,iBAAiBa,eAAe;QACxCC,QAAQf,KAAKe,MAAM;QACnBP;IACF;IAEA,MAAMW,kBAAkBzB,eAAe;QACrCmB,QAAQZ,iBAAiBa,eAAe;QACxCM,MAAMpB,KAAKgB,KAAK;IAClB;IACA,IAAIK,YAAYrB,KAAKgB,KAAK;IAC1B,IAAIG,iBAAiBG,oBAAoBtB,KAAKe,MAAM,EAAE;QACpDM,YAAYF,gBAAgBI,aAAa,CAACC,OAAO,CAAC,YAAYxB,KAAKe,MAAM;IAC3E;IAEA,MAAMU,iBACJN,mBAAmB,aAAaA,gBAAgBH,KAAK,IAAIG,gBAAgBH,KAAK,CAACU,OAAO;IAExF,MAAMC,OAAO3B,KAAK2B,IAAI,IAAI;IAE1B,MAAMC,eAAeC,OAAOC,IAAI,CAACpB,KAAK,CAAC,EAAE,AAAE,+DAA+D;;IAC1G,MAAMqB,gBAAgBrB,IAAI,CAACkB,aAAa,KAAK,QAAQ,IAAI,CAAC;IAE1D,IAAII,UAAe;IACnB,IAAIC,SAAc;IAClB,IACER,kBACAhB,gBAAgByB,MAAM,IACtBzB,eAAe,CAAC,EAAE,IAClB,aAAaA,eAAe,CAAC,EAAE,EAC/B;QACAuB,UAAU;YAAEZ,MAAM,CAAC,CAAC,EAAEX,eAAe,CAAC,EAAE,CAAC0B,OAAO,CAACC,EAAE,EAAE;YAAEC,4BAA4B;QAAK;QACxFJ,SAAS;YACPK,KAAK;gBACHC,QAAQ,CAAC,CAAC,EAAE9B,eAAe,CAAC,EAAE,CAAC0B,OAAO,CAACC,EAAE,CAAC,IAAI,CAAC;gBAC/CI,OAAO,CAAC,CAAC,EAAEZ,cAAc;YAC3B;QACF;IACF,OAAO,IAAIH,gBAAgB;QACzBO,UAAU;YAAEZ,MAAM,CAAC,CAAC,EAAEpB,KAAKgB,KAAK,EAAE;YAAEqB,4BAA4B;QAAK;IACvE;IAEA,IAAI,CAACJ,QAAQ;QACXA,SAAS;YACPK,KAAK;gBACHC,QAAQ,CAAC,CAAC,EAAElB,WAAW;gBACvB,GAAIO,iBAAiBP,YACjB,CAAC,IACD;oBACEmB,OAAO,CAAC,CAAC,EAAEZ,cAAc;gBAC3B,CAAC;YACP;QACF;IACF;IAEA,MAAMa,WAA4B;QAChC;YACEC,QAAQxB;QACV;WACIT,gBAAgByB,MAAM,GAAG,IAAIzB,kBAAkB,EAAE;WACjDuB,UACA;YACE;gBACEA;YACF;SACD,GACD,EAAE;QACN;YACEC;QACF;QACA;YACEU,OAAO;gBACL,CAACf,iBAAiBP,YAAY,eAAe,YAAY,EAAEU;YAC7D;QACF;KACD;IAED,MAAMa,YAAY;QAChB,OAAO1C,MAAM2C,SAAS,CAACJ,UAAU;YAAEnC;QAAQ,GAAGwC,IAAI,CAAC,CAACC,MAClDA,IAAIC,GAAG,CAAC,CAACC,OAAU,CAAA;oBACjB,CAACjD,KAAKgB,KAAK,CAAC,EAAEkC,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACH,KAAKX,GAAG,CAACC,MAAM;gBACzD,CAAA;IAEJ;IAEA,IAAIvC,KAAKqD,KAAK,EAAE;QACdZ,SAASa,IAAI,CAAC;YACZC,OAAO,AAAC5B,CAAAA,OAAO,CAAA,IAAK3B,KAAKqD,KAAK;QAChC;QACAZ,SAASa,IAAI,CAAC;YAAEE,QAAQxD,KAAKqD,KAAK;QAAC;QACnC,MAAMI,YAAY,MAAMvD,MAAM2C,SAAS,CACrC;YACE;gBACEH,QAAQxB;YACV;YACA;gBACEe,QAAQ;oBACNK,KAAK,CAAC,CAAC,EAAEjB,WAAW;gBACtB;YACF;YACA;gBAAEqC,QAAQ;YAAQ;SACnB,EACD;YACEpD;QACF,GACAwC,IAAI,CAAC,CAACC,MAAQA,GAAG,CAAC,EAAE,EAAEY,SAAS;QACjC,MAAMC,aAAaC,KAAKC,IAAI,CAACL,YAAYzD,KAAKqD,KAAK;QACnD,MAAMU,cAAcpC,OAAO;QAC3B,MAAMqC,cAAcJ,aAAajC;QACjC,MAAMsC,gBAAgB,AAACtC,CAAAA,OAAO,CAAA,IAAK3B,KAAKqD,KAAK,GAAG;QAEhD,OAAO;YACLW;YACAD;YACAV,OAAOrD,KAAKqD,KAAK;YACjBa,UAAUF,cAAcrC,OAAO,IAAI;YACnCA;YACAsC;YACAE,UAAUJ,cAAcpC,OAAO,IAAI;YACnC8B;YACAG;YACAQ,QAAQ,MAAMxB;QAChB;IACF;IAEA,MAAMwB,SAAS,MAAMxB;IAErB,OAAO;QACLoB,aAAa;QACbD,aAAa;QACbV,OAAO;QACP1B,MAAM;QACNsC,eAAe;QACfR,WAAWW,OAAOlC,MAAM;QACxB0B,YAAY;QACZQ;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../src/findDistinct.ts"],"sourcesContent":["import type { PipelineStage } from 'mongoose'\nimport type { FindDistinct, FlattenedField } from 'payload'\n\nimport { APIError, getFieldByPath } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport { getCollection } from './utilities/getEntity.js'\nimport { getSession } from './utilities/getSession.js'\n\nexport const findDistinct: FindDistinct = async function (this: MongooseAdapter, args) {\n const { collectionConfig, Model } = getCollection({\n adapter: this,\n collectionSlug: args.collection,\n })\n\n const session = await getSession(this, args.req)\n\n const { where = {} } = args\n\n const sortAggregation: PipelineStage[] = []\n\n const sort = buildSortParam({\n adapter: this,\n config: this.payload.config,\n fields: collectionConfig.flattenedFields,\n locale: args.locale,\n sort: args.sort ?? args.field,\n sortAggregation,\n timestamps: true,\n })\n\n const query = await buildQuery({\n adapter: this,\n collectionSlug: args.collection,\n fields: collectionConfig.flattenedFields,\n locale: args.locale,\n where,\n })\n\n const fieldPathResult = getFieldByPath({\n fields: collectionConfig.flattenedFields,\n path: args.field,\n })\n let fieldPath = args.field\n if (fieldPathResult?.pathHasLocalized && args.locale) {\n fieldPath = fieldPathResult.localizedPath.replace('<locale>', args.locale)\n }\n\n const page = args.page || 1\n\n let sortProperty = Object.keys(sort)[0]! // assert because buildSortParam always returns at least 1 key.\n const sortDirection = sort[sortProperty] === 'asc' ? 1 : -1\n\n let currentFields = collectionConfig.flattenedFields\n let relationTo: null | string = null\n let foundField: FlattenedField | null = null\n let foundFieldPath = ''\n let relationFieldPath = ''\n\n for (const segment of args.field.split('.')) {\n const field = currentFields.find((e) => e.name === segment)\n\n if (!field) {\n break\n }\n\n if (relationTo) {\n foundFieldPath = `${foundFieldPath}${field?.name}`\n } else {\n relationFieldPath = `${relationFieldPath}${field.name}`\n }\n\n if ('flattenedFields' in field) {\n currentFields = field.flattenedFields\n\n if (relationTo) {\n foundFieldPath = `${foundFieldPath}.`\n } else {\n relationFieldPath = `${relationFieldPath}.`\n }\n continue\n }\n\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n typeof field.relationTo === 'string'\n ) {\n if (relationTo) {\n throw new APIError(\n `findDistinct for fields nested to relationships supported 1 level only, errored field: ${args.field}`,\n )\n }\n relationTo = field.relationTo\n currentFields = this.payload.collections[field.relationTo]?.config\n .flattenedFields as FlattenedField[]\n continue\n }\n foundField = field\n\n if (\n sortAggregation.some(\n (stage) => '$lookup' in stage && stage.$lookup.localField === relationFieldPath,\n )\n ) {\n sortProperty = sortProperty.replace('__', '')\n sortAggregation.pop()\n }\n }\n\n const resolvedField = foundField || fieldPathResult?.field\n const isHasManyValue = resolvedField && 'hasMany' in resolvedField && resolvedField\n\n let relationLookup: null | PipelineStage = null\n if (relationTo && foundFieldPath && relationFieldPath) {\n const { Model: foreignModel } = getCollection({ adapter: this, collectionSlug: relationTo })\n\n relationLookup = {\n $lookup: {\n as: relationFieldPath,\n foreignField: '_id',\n from: foreignModel.collection.name,\n localField: relationFieldPath,\n },\n }\n }\n\n let $unwind: any = ''\n let $group: any = null\n if (\n isHasManyValue &&\n sortAggregation.length &&\n sortAggregation[0] &&\n '$lookup' in sortAggregation[0]\n ) {\n $unwind = { path: `$${sortAggregation[0].$lookup.as}`, preserveNullAndEmptyArrays: true }\n $group = {\n _id: {\n _field: `$${sortAggregation[0].$lookup.as}._id`,\n _sort: `$${sortProperty}`,\n },\n }\n } else if (isHasManyValue) {\n $unwind = { path: `$${args.field}`, preserveNullAndEmptyArrays: true }\n }\n\n if (!$group) {\n $group = {\n _id: {\n _field: `$${fieldPath}`,\n ...(sortProperty === fieldPath\n ? {}\n : {\n _sort: `$${sortProperty}`,\n }),\n },\n }\n }\n\n const pipeline: PipelineStage[] = [\n {\n $match: query,\n },\n ...(sortAggregation.length > 0 ? sortAggregation : []),\n ...(relationLookup ? [relationLookup, { $unwind: `$${relationFieldPath}` }] : []),\n ...($unwind\n ? [\n {\n $unwind,\n },\n ]\n : []),\n {\n $group,\n },\n {\n $sort: {\n [sortProperty === fieldPath ? '_id._field' : '_id._sort']: sortDirection,\n },\n },\n ]\n\n const getValues = async () => {\n return Model.aggregate(pipeline, { session }).then((res) =>\n res.map((each) => ({\n [args.field]: JSON.parse(JSON.stringify(each._id._field)),\n })),\n )\n }\n\n if (args.limit) {\n pipeline.push({\n $skip: (page - 1) * args.limit,\n })\n pipeline.push({ $limit: args.limit })\n const totalDocs = await Model.aggregate(\n [\n {\n $match: query,\n },\n {\n $group: {\n _id: `$${fieldPath}`,\n },\n },\n { $count: 'count' },\n ],\n {\n session,\n },\n ).then((res) => res[0]?.count ?? 0)\n const totalPages = Math.ceil(totalDocs / args.limit)\n const hasPrevPage = page > 1\n const hasNextPage = totalPages > page\n const pagingCounter = (page - 1) * args.limit + 1\n\n return {\n hasNextPage,\n hasPrevPage,\n limit: args.limit,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs,\n totalPages,\n values: await getValues(),\n }\n }\n\n const values = await getValues()\n\n return {\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n page: 1,\n pagingCounter: 1,\n totalDocs: values.length,\n totalPages: 1,\n values,\n }\n}\n"],"names":["APIError","getFieldByPath","buildQuery","buildSortParam","getCollection","getSession","findDistinct","args","collectionConfig","Model","adapter","collectionSlug","collection","session","req","where","sortAggregation","sort","config","payload","fields","flattenedFields","locale","field","timestamps","query","fieldPathResult","path","fieldPath","pathHasLocalized","localizedPath","replace","page","sortProperty","Object","keys","sortDirection","currentFields","relationTo","foundField","foundFieldPath","relationFieldPath","segment","split","find","e","name","type","collections","some","stage","$lookup","localField","pop","resolvedField","isHasManyValue","relationLookup","foreignModel","as","foreignField","from","$unwind","$group","length","preserveNullAndEmptyArrays","_id","_field","_sort","pipeline","$match","$sort","getValues","aggregate","then","res","map","each","JSON","parse","stringify","limit","push","$skip","$limit","totalDocs","$count","count","totalPages","Math","ceil","hasPrevPage","hasNextPage","pagingCounter","nextPage","prevPage","values"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-mongodb",
3
- "version": "3.59.0-internal.917c03d",
3
+ "version": "3.59.0-internal.929dda3",
4
4
  "description": "The officially supported MongoDB database adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -50,10 +50,10 @@
50
50
  "mongodb": "6.16.0",
51
51
  "mongodb-memory-server": "10.1.4",
52
52
  "@payloadcms/eslint-config": "3.28.0",
53
- "payload": "3.59.0-internal.917c03d"
53
+ "payload": "3.59.0-internal.929dda3"
54
54
  },
55
55
  "peerDependencies": {
56
- "payload": "3.59.0-internal.917c03d"
56
+ "payload": "3.59.0-internal.929dda3"
57
57
  },
58
58
  "scripts": {
59
59
  "build": "pnpm build:types && pnpm build:swc",