@payloadcms/db-mongodb 3.57.0-internal.98b3a35 → 3.57.0-internal.b72985f
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 +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,
|
|
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,YA6J1B,CAAA"}
|
package/dist/findDistinct.js
CHANGED
|
@@ -41,25 +41,16 @@ export const findDistinct = async function(args) {
|
|
|
41
41
|
;
|
|
42
42
|
const sortDirection = sort[sortProperty] === 'asc' ? 1 : -1;
|
|
43
43
|
let $unwind = '';
|
|
44
|
-
let $group
|
|
44
|
+
let $group;
|
|
45
45
|
if (isHasManyValue && sortAggregation.length && sortAggregation[0] && '$lookup' in sortAggregation[0]) {
|
|
46
|
-
$unwind = {
|
|
47
|
-
path: `$${sortAggregation[0].$lookup.as}`,
|
|
48
|
-
preserveNullAndEmptyArrays: true
|
|
49
|
-
};
|
|
46
|
+
$unwind = `$${sortAggregation[0].$lookup.as}`;
|
|
50
47
|
$group = {
|
|
51
48
|
_id: {
|
|
52
49
|
_field: `$${sortAggregation[0].$lookup.as}._id`,
|
|
53
50
|
_sort: `$${sortProperty}`
|
|
54
51
|
}
|
|
55
52
|
};
|
|
56
|
-
} else
|
|
57
|
-
$unwind = {
|
|
58
|
-
path: `$${args.field}`,
|
|
59
|
-
preserveNullAndEmptyArrays: true
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
if (!$group) {
|
|
53
|
+
} else {
|
|
63
54
|
$group = {
|
|
64
55
|
_id: {
|
|
65
56
|
_field: `$${fieldPath}`,
|
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:
|
|
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: string = ''\n let $group: any\n if (\n isHasManyValue &&\n sortAggregation.length &&\n sortAggregation[0] &&\n '$lookup' in sortAggregation[0]\n ) {\n $unwind = `$${sortAggregation[0].$lookup.as}`\n $group = {\n _id: {\n _field: `$${sortAggregation[0].$lookup.as}._id`,\n _sort: `$${sortProperty}`,\n },\n }\n } else {\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","_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.57.0-internal.
|
|
3
|
+
"version": "3.57.0-internal.b72985f",
|
|
4
4
|
"description": "The officially supported MongoDB database adapter for Payload",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
"@types/uuid": "10.0.0",
|
|
50
50
|
"mongodb": "6.16.0",
|
|
51
51
|
"mongodb-memory-server": "10.1.4",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
52
|
+
"payload": "3.57.0-internal.b72985f",
|
|
53
|
+
"@payloadcms/eslint-config": "3.28.0"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
|
-
"payload": "3.57.0-internal.
|
|
56
|
+
"payload": "3.57.0-internal.b72985f"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"build": "pnpm build:types && pnpm build:swc",
|