@payloadcms/db-mongodb 3.59.0-internal.917c03d → 3.59.0-internal.b804ca6
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.
package/dist/findDistinct.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findDistinct.d.ts","sourceRoot":"","sources":["../src/findDistinct.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/findDistinct.js
CHANGED
|
@@ -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
|
-
|
|
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
|
package/dist/findDistinct.js.map
CHANGED
|
@@ -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":"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"}
|
|
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.
|
|
3
|
+
"version": "3.59.0-internal.b804ca6",
|
|
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.
|
|
53
|
+
"payload": "3.59.0-internal.b804ca6"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
|
-
"payload": "3.59.0-internal.
|
|
56
|
+
"payload": "3.59.0-internal.b804ca6"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"build": "pnpm build:types && pnpm build:swc",
|