@exabugs/dynamodb-client 1.27.0 → 1.27.1
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/CHANGELOG.md +18 -0
- package/dist/__generated__/models/findResultPageInfo.d.ts +2 -0
- package/dist/__generated__/models/findResultPageInfo.d.ts.map +1 -1
- package/dist/server/handler.cjs +318 -307
- package/dist/server/handler.cjs.map +4 -4
- package/dist/server/media-handler.cjs +2 -2
- package/dist/server/media-process-handler-dlq.cjs +2 -2
- package/dist/server/media-process-handler.cjs +2 -2
- package/dist/server/operations/find/handler.d.ts.map +1 -1
- package/dist/server/operations/find/handler.js +4 -1
- package/dist/server/operations/find/handler.js.map +1 -1
- package/dist/server/operations/find/nearQuery.d.ts +4 -1
- package/dist/server/operations/find/nearQuery.d.ts.map +1 -1
- package/dist/server/operations/find/nearQuery.js +30 -42
- package/dist/server/operations/find/nearQuery.js.map +1 -1
- package/dist/server/operations/updateMany.d.ts.map +1 -1
- package/dist/server/operations/updateMany.js +17 -15
- package/dist/server/operations/updateMany.js.map +1 -1
- package/dist/server/query/nearSearch.d.ts +37 -25
- package/dist/server/query/nearSearch.d.ts.map +1 -1
- package/dist/server/query/nearSearch.js +87 -125
- package/dist/server/query/nearSearch.js.map +1 -1
- package/dist/server/utils/updateOperators.d.ts +12 -1
- package/dist/server/utils/updateOperators.d.ts.map +1 -1
- package/dist/server/utils/updateOperators.js +53 -6
- package/dist/server/utils/updateOperators.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/handler.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQzD;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CA0DrB"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* 429行の大きなhandleFind関数を単一責任の原則に従って分割したメインエントリーポイント
|
|
5
5
|
*/
|
|
6
6
|
import { createLogger } from '../../../shared/index.js';
|
|
7
|
+
import { conditionOf } from '../../utils/idFilter.js';
|
|
7
8
|
import { validateSortField } from '../../utils/validation.js';
|
|
8
9
|
import { executeIdQuery } from './idQuery.js';
|
|
9
10
|
import { executeNearQuery } from './nearQuery.js';
|
|
@@ -42,7 +43,9 @@ export async function handleFind(resource, params, requestId) {
|
|
|
42
43
|
});
|
|
43
44
|
// $near検索を実行
|
|
44
45
|
const limit = params.pagination?.perPage || 10;
|
|
45
|
-
|
|
46
|
+
// $near の項目以外の条件は、本体を読んだ後に絞る(黙って無視しない)
|
|
47
|
+
const otherFilters = Object.fromEntries(Object.entries(params.filter ?? {}).filter(([field]) => field !== nearDetection.fieldName));
|
|
48
|
+
return executeNearQuery(resource, nearDetection.fieldName, nearDetection.nearQuery, limit, requestId, conditionOf(otherFilters));
|
|
46
49
|
}
|
|
47
50
|
// 設定とパラメータの初期化
|
|
48
51
|
const config = initializeFindConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/server/operations/find/handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAExF,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,OAAO,EAAE,cAAc;IACvB,KAAK,EAAG,OAAO,CAAC,GAAG,CAAC,SAAiD,IAAI,MAAM;CAChF,CAAC,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,MAAkB,EAClB,SAAiB;IAEjB,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;QAC7B,SAAS;QACT,QAAQ;QACR,MAAM;KACP,CAAC,CAAC;IAEH,gBAAgB;IAChB,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE;YAC7D,SAAS;YACT,QAAQ;YACR,SAAS,EAAE,aAAa,CAAC,SAAS;SACnC,CAAC,CAAC;QAEH,aAAa;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC;QAC/C,OAAO,gBAAgB,CACrB,QAAQ,EACR,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,SAAS,EACvB,KAAK,EACL,SAAS,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/server/operations/find/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,10 @@ import type { FindResult } from './types.js';
|
|
|
8
8
|
* @param nearQuery - $nearクエリ
|
|
9
9
|
* @param limit - 取得件数
|
|
10
10
|
* @param requestId - リクエストID
|
|
11
|
+
* @param condition - $near 以外の条件
|
|
11
12
|
* @returns 検索結果
|
|
12
13
|
*/
|
|
13
|
-
export declare function executeNearQuery(resource: string, fieldName: string, nearQuery: NearQuery, limit: number, requestId: string
|
|
14
|
+
export declare function executeNearQuery(resource: string, fieldName: string, nearQuery: NearQuery, limit: number, requestId: string,
|
|
15
|
+
/** $near 以外の条件。本体を読んだ後に絞る(絞った分、件数が limit に足りなくなることがある) */
|
|
16
|
+
condition?: Record<string, unknown>): Promise<FindResult>;
|
|
14
17
|
//# sourceMappingURL=nearQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nearQuery.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/nearQuery.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"nearQuery.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/nearQuery.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAc1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM;AACjB,0DAA0D;AAC1D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,UAAU,CAAC,CAwJrB"}
|
|
@@ -8,7 +8,9 @@ import { executeNearSearch } from '../../query/nearSearch.js';
|
|
|
8
8
|
import { batchGetAll } from '../../utils/batchGet.js';
|
|
9
9
|
import { CostTracker } from '../../utils/cost-tracker.js';
|
|
10
10
|
import { executeDynamoDBOperation, extractCleanRecord, getDBClient, getTableName, } from '../../utils/dynamodb.js';
|
|
11
|
+
import { conditionMatcher } from '../../utils/idFilter.js';
|
|
11
12
|
import { ScanWatcher } from '../../utils/scanWarning.js';
|
|
13
|
+
import { extractRecordIds } from './shadowQuery.js';
|
|
12
14
|
const logger = createLogger({
|
|
13
15
|
service: 'near-query',
|
|
14
16
|
level: process.env.LOG_LEVEL || 'info',
|
|
@@ -21,9 +23,12 @@ const logger = createLogger({
|
|
|
21
23
|
* @param nearQuery - $nearクエリ
|
|
22
24
|
* @param limit - 取得件数
|
|
23
25
|
* @param requestId - リクエストID
|
|
26
|
+
* @param condition - $near 以外の条件
|
|
24
27
|
* @returns 検索結果
|
|
25
28
|
*/
|
|
26
|
-
export async function executeNearQuery(resource, fieldName, nearQuery, limit, requestId
|
|
29
|
+
export async function executeNearQuery(resource, fieldName, nearQuery, limit, requestId,
|
|
30
|
+
/** $near 以外の条件。本体を読んだ後に絞る(絞った分、件数が limit に足りなくなることがある) */
|
|
31
|
+
condition) {
|
|
27
32
|
logger.debug('Executing $near query', {
|
|
28
33
|
requestId,
|
|
29
34
|
resource,
|
|
@@ -33,7 +38,7 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
33
38
|
});
|
|
34
39
|
const costTracker = new CostTracker();
|
|
35
40
|
// DynamoDBから検索する関数
|
|
36
|
-
const
|
|
41
|
+
const searchShadows = async (geohashPrefix) => {
|
|
37
42
|
const dbClient = getDBClient();
|
|
38
43
|
const tableName = getTableName();
|
|
39
44
|
logger.debug('Searching shadow records', {
|
|
@@ -87,43 +92,25 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
87
92
|
geohashPrefix,
|
|
88
93
|
count: shadowRecords.length,
|
|
89
94
|
});
|
|
90
|
-
//
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
.
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
});
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
const validRecords = await batchGetAll(mainRecordIds.map((id) => ({ PK: resource, SK: `id#${id}` })), { consistentRead: false, costTracker, requestId });
|
|
110
|
-
logger.debug('Main records retrieved', {
|
|
111
|
-
requestId,
|
|
112
|
-
resource,
|
|
113
|
-
geohashPrefix,
|
|
114
|
-
count: validRecords.length,
|
|
115
|
-
});
|
|
116
|
-
// data属性からレコードを抽出し、__shadowKeysを除外
|
|
117
|
-
// 本体レコードは { PK, SK, data: { ...actual fields } } という構造
|
|
118
|
-
const cleanRecords = validRecords.map((record) => extractCleanRecord(record));
|
|
119
|
-
logger.debug('Clean records extracted', {
|
|
120
|
-
requestId,
|
|
121
|
-
resource,
|
|
122
|
-
geohashPrefix,
|
|
123
|
-
count: cleanRecords.length,
|
|
124
|
-
sampleKeys: cleanRecords[0] ? Object.keys(cleanRecords[0]) : [],
|
|
125
|
-
});
|
|
126
|
-
return cleanRecords;
|
|
95
|
+
// SK: <項目>#<geohash>#id#<ID>。geohash(シャドーの精度)と ID を取り出す(本体はまだ読まない)
|
|
96
|
+
const hits = [];
|
|
97
|
+
for (const record of shadowRecords) {
|
|
98
|
+
const sk = String(record.SK);
|
|
99
|
+
const afterField = sk.slice(fieldName.length + 1);
|
|
100
|
+
const geohash = afterField.slice(0, afterField.indexOf('#'));
|
|
101
|
+
const [id] = extractRecordIds([record]);
|
|
102
|
+
if (id !== undefined && geohash !== '')
|
|
103
|
+
hits.push({ id, geohash });
|
|
104
|
+
}
|
|
105
|
+
return hits;
|
|
106
|
+
};
|
|
107
|
+
// 結果になりうる候補の本体だけを、最後に 1 回読む
|
|
108
|
+
// (100 件ごとの分割と UnprocessedKeys の再試行は batchGetAll が行う。取りこぼさない)
|
|
109
|
+
const matches = conditionMatcher(condition);
|
|
110
|
+
const readBodies = async (ids) => {
|
|
111
|
+
const bodies = await batchGetAll(ids.map((id) => ({ PK: resource, SK: `id#${id}` })), { consistentRead: false, costTracker, requestId });
|
|
112
|
+
// data属性からレコードを抽出し、__shadowKeysを除外し、ほかの条件で絞る
|
|
113
|
+
return bodies.map((record) => extractCleanRecord(record)).filter(matches);
|
|
127
114
|
};
|
|
128
115
|
// nearQueryにminPrecisionが指定されている場合はConfigをオーバーライド
|
|
129
116
|
const minPrecisionOverride = 'minPrecision' in nearQuery
|
|
@@ -135,9 +122,7 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
135
122
|
? { ...DEFAULT_GEOHASH_CONFIG, minPrecision: minPrecisionOverride }
|
|
136
123
|
: DEFAULT_GEOHASH_CONFIG;
|
|
137
124
|
// 9ブロック検索を実行
|
|
138
|
-
const result = await executeNearSearch(nearQuery, fieldName, limit,
|
|
139
|
-
// searchFunctionが既にクリーンなレコード(data属性から抽出済み)を返しているので、
|
|
140
|
-
// そのまま使用する
|
|
125
|
+
const result = await executeNearSearch(nearQuery, fieldName, limit, searchShadows, readBodies, config);
|
|
141
126
|
const items = result.documents;
|
|
142
127
|
logger.info('$near query succeeded', {
|
|
143
128
|
requestId,
|
|
@@ -146,12 +131,15 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
146
131
|
count: items.length,
|
|
147
132
|
iterations: result.metadata.iterations,
|
|
148
133
|
candidatesFound: result.metadata.candidatesFound,
|
|
134
|
+
bodiesRead: result.metadata.bodiesRead,
|
|
135
|
+
exhaustive: result.metadata.exhaustive,
|
|
149
136
|
});
|
|
150
137
|
return {
|
|
151
138
|
items,
|
|
152
139
|
pageInfo: {
|
|
153
140
|
hasNextPage: false, // $near検索はページネーション非対応
|
|
154
141
|
hasPreviousPage: false,
|
|
142
|
+
exhaustive: result.metadata.exhaustive,
|
|
155
143
|
},
|
|
156
144
|
consumedCapacity: costTracker.getAggregated(),
|
|
157
145
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nearQuery.js","sourceRoot":"","sources":["../../../../src/server/operations/find/nearQuery.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAkB,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"nearQuery.js","sourceRoot":"","sources":["../../../../src/server/operations/find/nearQuery.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAkB,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAkB,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,WAAW,EACX,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,OAAO,EAAE,YAAY;IACrB,KAAK,EAAG,OAAO,CAAC,GAAG,CAAC,SAAiD,IAAI,MAAM;CAChF,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,SAAiB,EACjB,SAAoB,EACpB,KAAa,EACb,SAAiB;AACjB,0DAA0D;AAC1D,SAAmC;IAEnC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;QACpC,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,mBAAmB;IACnB,MAAM,aAAa,GAAG,KAAK,EAAE,aAAqB,EAAwB,EAAE;QAC1E,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;YACvC,SAAS;YACT,QAAQ;YACR,SAAS;YACT,aAAa;YACb,QAAQ,EAAE,GAAG,SAAS,IAAI,aAAa,EAAE;SAC1C,CAAC,CAAC;QAEH,cAAc;QACd,gCAAgC;QAChC,0CAA0C;QAC1C,8DAA8D;QAC9D,MAAM,aAAa,GAA8B,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC;YAC9B,SAAS;YACT,QAAQ;YACR,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,CAAC,OAAO,CAAC;SACnB,CAAC,CAAC;QACH,IAAI,iBAAsD,CAAC;QAC3D,IAAI,oBAAwC,CAAC;QAC7C,GAAG,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAChD,GAAG,EAAE,CACH,QAAQ,CAAC,IAAI,CACX,IAAI,YAAY,CAAC;gBACf,SAAS,EAAE,SAAS;gBACpB,sBAAsB,EAAE,yCAAyC;gBACjE,yBAAyB,EAAE;oBACzB,KAAK,EAAE,QAAQ;oBACf,WAAW,EAAE,GAAG,SAAS,IAAI,aAAa,EAAE;iBAC7C;gBACD,iBAAiB,EAAE,iBAAiB;gBACpC,cAAc,EAAE,KAAK,EAAE,oBAAoB;gBAC3C,sBAAsB,EAAE,OAAO;aAChC,CAAC,CACH,EACH,OAAO,CACR,CAAC;YAEF,WAAW;YACX,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAE9C,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAE9C,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAuD,CAAC;YACpF,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,IAAI,gBAAgB,IAAI,gBAAgB,KAAK,oBAAoB,EAAE,CAAC;gBAClE,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,cAAc,EACxB,2DAA2D,EAC3D,GAAG,EACH,EAAE,QAAQ,EAAE,aAAa,EAAE,CAC5B,CAAC;YACJ,CAAC;YACD,oBAAoB,GAAG,gBAAgB,CAAC;YACxC,iBAAiB,GAAG,OAAO,CAAC;QAC9B,CAAC,QAAQ,iBAAiB,EAAE;QAE5B,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE;YACnC,SAAS;YACT,QAAQ;YACR,aAAa;YACb,KAAK,EAAE,aAAa,CAAC,MAAM;SAC5B,CAAC,CAAC;QAEH,mEAAmE;QACnE,MAAM,IAAI,GAAgB,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7B,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACxC,IAAI,EAAE,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,4BAA4B;IAC5B,8DAA8D;IAC9D,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,KAAK,EAAE,GAAa,EAAsC,EAAE;QAC7E,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EACnD,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAClD,CAAC;QACF,6CAA6C;QAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC;IAEF,kDAAkD;IAClD,MAAM,oBAAoB,GACxB,cAAc,IAAI,SAAS;QACzB,CAAC,CAAC,SAAS,CAAC,YAAY;QACxB,CAAC,CAAC,eAAe,IAAI,SAAS;YAC5B,CAAC,CAAC,SAAS,CAAC,aAAa;YACzB,CAAC,CAAC,SAAS,CAAC;IAClB,MAAM,MAAM,GACV,oBAAoB,KAAK,SAAS;QAChC,CAAC,CAAC,EAAE,GAAG,sBAAsB,EAAE,YAAY,EAAE,oBAAoB,EAAE;QACnE,CAAC,CAAC,sBAAsB,CAAC;IAE7B,aAAa;IACb,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,SAAS,EACT,SAAS,EACT,KAAK,EACL,aAAa,EACb,UAAU,EACV,MAAM,CACP,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;IAE/B,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;QACnC,SAAS;QACT,QAAQ;QACR,SAAS;QACT,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;QACtC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,eAAe;QAChD,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;QACtC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;KACvC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,QAAQ,EAAE;YACR,WAAW,EAAE,KAAK,EAAE,sBAAsB;YAC1C,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;SACvC;QACD,gBAAgB,EAAE,WAAW,CAAC,aAAa,EAAE;KAC9C,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateMany.d.ts","sourceRoot":"","sources":["../../../src/server/operations/updateMany.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"updateMany.d.ts","sourceRoot":"","sources":["../../../src/server/operations/updateMany.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAuDtF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAuhB3B"}
|
|
@@ -17,7 +17,7 @@ import { conditionMatcher } from '../utils/idFilter.js';
|
|
|
17
17
|
import { applyJsonMergePatch } from '../utils/mergePatch.js';
|
|
18
18
|
import { REVISION_ATTRIBUTE, nextRevision, notExistsCondition, revisionOf, unchangedCondition, writeWithConflictRetry, } from '../utils/revision.js';
|
|
19
19
|
import { addUpdateTimestamp } from '../utils/timestamps.js';
|
|
20
|
-
import { equalityFieldsOf, resolveUpdateOperators } from '../utils/updateOperators.js';
|
|
20
|
+
import { applyInc, equalityFieldsOf, resolveUpdateOperators } from '../utils/updateOperators.js';
|
|
21
21
|
import { findAllByFilter } from './findAll.js';
|
|
22
22
|
const logger = createLogger({ service: 'records-lambda' });
|
|
23
23
|
/**
|
|
@@ -184,7 +184,12 @@ export async function handleUpdateMany(resource, params, requestId) {
|
|
|
184
184
|
const timestampedPatch = addUpdateTimestamp(update.patch);
|
|
185
185
|
// JSON Merge Patchを適用
|
|
186
186
|
const mergedData = applyJsonMergePatch(removeShadowKeys(existingData), timestampedPatch);
|
|
187
|
-
|
|
187
|
+
// $inc: 読んだ値に足す(競合のやり直しでは、読み直した最新の値に足す)
|
|
188
|
+
const added = applyInc(mergedData, update.inc);
|
|
189
|
+
const updatedData = {
|
|
190
|
+
...applyJsonMergePatch(mergedData, added),
|
|
191
|
+
id,
|
|
192
|
+
};
|
|
188
193
|
// 新しいシャドーレコードを生成(自動フィールド検出)
|
|
189
194
|
const newShadowRecords = generateShadowRecords(updatedData, resource, shadowConfig);
|
|
190
195
|
const newShadowKeys = newShadowRecords.map((shadow) => shadow.SK);
|
|
@@ -197,6 +202,7 @@ export async function handleUpdateMany(resource, params, requestId) {
|
|
|
197
202
|
newShadowKeys,
|
|
198
203
|
mainSK,
|
|
199
204
|
isNew: false,
|
|
205
|
+
returned: { ...update.returned, ...added },
|
|
200
206
|
revision: revisionOf(item),
|
|
201
207
|
});
|
|
202
208
|
}
|
|
@@ -229,10 +235,10 @@ export async function handleUpdateMany(resource, params, requestId) {
|
|
|
229
235
|
try {
|
|
230
236
|
// $setOnInsert を先に当て、その後 $set で上書きする。
|
|
231
237
|
// 既存レコードの更新と同じ JSON Merge Patch を使う('a.b' はネスト、null・$unset は入れない)
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
};
|
|
238
|
+
const baseData = applyJsonMergePatch({}, { ...update.setOnInsert, ...update.patch });
|
|
239
|
+
// $inc は、$setOnInsert → $set の後に当てる(無ければ 0 から)
|
|
240
|
+
const added = applyInc(baseData, update.inc);
|
|
241
|
+
const mergedData = { ...applyJsonMergePatch(baseData, added), id };
|
|
236
242
|
// createdAtとupdatedAtを追加
|
|
237
243
|
const newData = addCreateTimestamps(mergedData);
|
|
238
244
|
// 新しいシャドーレコードを生成
|
|
@@ -247,6 +253,7 @@ export async function handleUpdateMany(resource, params, requestId) {
|
|
|
247
253
|
newShadowKeys,
|
|
248
254
|
mainSK,
|
|
249
255
|
isNew: true,
|
|
256
|
+
returned: { ...update.setOnInsert, ...update.returned, ...added },
|
|
250
257
|
});
|
|
251
258
|
}
|
|
252
259
|
catch (error) {
|
|
@@ -373,6 +380,8 @@ export async function handleUpdateMany(resource, params, requestId) {
|
|
|
373
380
|
const errorsMap = {};
|
|
374
381
|
// 成功したレコードのインデックスを特定
|
|
375
382
|
const successIdSet = new Set(successRecords.map((r) => r.id));
|
|
383
|
+
// 競合のやり直しで作り直したレコードの値を返す(id → 返す値)
|
|
384
|
+
const returnedById = new Map(successRecords.map((r) => [r.id, r.returned]));
|
|
376
385
|
const upsertedIds = [];
|
|
377
386
|
for (let i = 0; i < ids.length; i++) {
|
|
378
387
|
const id = ids[i];
|
|
@@ -381,18 +390,11 @@ export async function handleUpdateMany(resource, params, requestId) {
|
|
|
381
390
|
// 新規作成されたレコードの場合は、$setと$setOnInsertをマージ
|
|
382
391
|
if (upsert && notFoundIds.includes(id)) {
|
|
383
392
|
upsertedIds.push(id);
|
|
384
|
-
items.push({
|
|
385
|
-
id,
|
|
386
|
-
...update.setOnInsert,
|
|
387
|
-
...update.returned,
|
|
388
|
-
});
|
|
393
|
+
items.push({ id, ...returnedById.get(id) });
|
|
389
394
|
}
|
|
390
395
|
else {
|
|
391
396
|
// 既存レコード更新の場合は、$setのみ
|
|
392
|
-
items.push({
|
|
393
|
-
id,
|
|
394
|
-
...update.returned,
|
|
395
|
-
});
|
|
397
|
+
items.push({ id, ...returnedById.get(id) });
|
|
396
398
|
}
|
|
397
399
|
}
|
|
398
400
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateMany.js","sourceRoot":"","sources":["../../../src/server/operations/updateMany.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAsB3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,MAAwB,EACxB,SAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC5C,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,+DAA+D;IAC/D,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAEjD,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE;QACnC,SAAS;QACT,QAAQ;QACR,MAAM;KACP,CAAC,CAAC;IAEH,+BAA+B;IAC/B,IAAI,GAAa,CAAC;IAClB,uCAAuC;IACvC,IAAI,SAA8C,CAAC;IAEnD,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACpB,gBAAgB;QAChB,kDAAkD;QAClD,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAE7B,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;YAC5C,SAAS;YACT,QAAQ;YACR,KAAK,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;YAC/C,SAAS;YACT,QAAQ;YACR,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,wCAAwC;QACxC,2CAA2C;QAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAiC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,gBAAgB,EAC1B,+CAA+C,EAC/C,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,MAAM,OAAO,GAAG,MAAM,eAAe,CACnC,QAAQ,EACR,MAAM,CAAC,MAAiC,EACxC,SAAS,CACV,CAAC;QAEF,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC;QAC/C,gCAAgC;QAChC,SAAS,GAAG,MAAM,CAAC,MAAiC,CAAC;QAErD,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;YACxC,SAAS;YACT,QAAQ;YACR,KAAK,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,MAAM,EAAE,CAAC;gBACX,6BAA6B;gBAC7B,WAAW;gBACX,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;gBACrB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;gBAEd,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE;oBAC5D,SAAS;oBACT,QAAQ;oBACR,KAAK;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;gBAEH,8CAA8C;gBAC9C,MAAM,CAAC,WAAW,GAAG;oBACnB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAiC,CAAC;oBAC7D,GAAG,MAAM,CAAC,WAAW;iBACtB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,8BAA8B;gBAC9B,OAAO;oBACL,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,EAAE;oBACb,MAAM,EAAE,EAAE;oBACV,gBAAgB,EAAE,WAAW,CAAC,aAAa,EAAE;iBAC9C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,oBAAoB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC;;;;OAIG;IACH,MAAM,OAAO,GAAG,KAAK,EAAE,SAAmB,EAAE,EAAE;QAC5C,4DAA4D;QAC5D,mDAAmD;QACnD,MAAM,aAAa,GAAG,MAAM,WAAW,CACrC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACvE,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CACjD,CAAC;QAEF,oBAAoB;QACpB,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;YAClD,OAAO,IAAI,CAAC,EAAY,CAAC;QAC3B,CAAC,CAAC,CACH,CAAC;QAEF,aAAa;QACb,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnE,qCAAqC;QACrC,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBAC/C,SAAS;gBACT,QAAQ;gBACR,aAAa,EAAE,WAAW,CAAC,MAAM;gBACjC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,aAAa;aACrD,CAAC,CAAC;QACL,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;gBACjD,SAAS;gBACT,QAAQ;gBACR,aAAa,EAAE,WAAW,CAAC,MAAM;gBACjC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,aAAa;aACrD,CAAC,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QAEvC,MAAM,eAAe,GAA2B,EAAE,CAAC;QACnD,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,MAAM,iBAAiB,GAAqB,EAAE,CAAC;QAE/C,YAAY;QACZ,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAA+B,CAAC;gBAC1D,MAAM,EAAE,GAAG,YAAY,CAAC,EAAY,CAAC;gBACrC,2CAA2C;gBAC3C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtB,SAAS;gBACX,CAAC;gBACD,oCAAoC;gBACpC,MAAM,aAAa,GAAI,CAAC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY,CAAc,IAAI,EAAE,CAAC;gBAE3F,gDAAgD;gBAChD,4CAA4C;gBAC5C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE1D,sBAAsB;gBACtB,MAAM,UAAU,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,CAAC;gBAEzF,MAAM,WAAW,GAA4B,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,CAAC;gBAEnE,4BAA4B;gBAC5B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACpF,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAElE,gBAAgB;gBAChB,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBAExC,eAAe,CAAC,IAAI,CAAC;oBACnB,EAAE;oBACF,WAAW;oBACX,aAAa;oBACb,aAAa;oBACb,MAAM;oBACN,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;iBAC3B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mBAAmB;gBACnB,MAAM,YAAY,GAAG,IAAI,CAAC,IAA+B,CAAC;gBAC1D,MAAM,QAAQ,GAAI,YAAY,CAAC,EAAa,IAAI,YAAY,CAAC;gBAC7D,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC;gBAC1F,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;gBAEjD,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE;oBAClD,SAAS;oBACT,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,YAAY;oBACnB,SAAS;iBACV,CAAC,CAAC;gBAEH,iBAAiB;gBACjB,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,iBAAiB,CAAC,IAAI,CAAC;oBACrB,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,oBAAoB;YACpB,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAEvE,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,sCAAsC;oBACtC,kEAAkE;oBAClE,MAAM,UAAU,GAAG;wBACjB,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;wBACtE,EAAE;qBACH,CAAC;oBAEF,yBAAyB;oBACzB,MAAM,OAAO,GAA4B,mBAAmB,CAAC,UAAU,CAAC,CAAC;oBAEzE,iBAAiB;oBACjB,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;oBAChF,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAElE,gBAAgB;oBAChB,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBAExC,eAAe,CAAC,IAAI,CAAC;wBACnB,EAAE;wBACF,WAAW,EAAE,OAAO;wBACpB,aAAa,EAAE,EAAE,EAAE,WAAW;wBAC9B,aAAa;wBACb,MAAM;wBACN,KAAK,EAAE,IAAI;qBACZ,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,mBAAmB;oBACnB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC;oBAC1F,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;oBAEjD,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE;wBACtD,SAAS;wBACT,QAAQ,EAAE,EAAE;wBACZ,KAAK,EAAE,YAAY;wBACnB,SAAS;qBACV,CAAC,CAAC;oBAEH,iBAAiB;oBACjB,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9B,iBAAiB,CAAC,IAAI,CAAC;wBACrB,EAAE;wBACF,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,YAAY;qBACtB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,eAAe;YACf,WAAW;YACX,aAAa;YACb,oBAAoB;YACpB,iBAAiB;SAClB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,GAC5F,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAErB,mCAAmC;IACnC,MAAM,YAAY,GAAG,CAAC,MAA4B,EAAU,EAAE;QAC5D,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;IAClE,CAAC,CAAC;IAEF,SAAS;IACT,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAElE,4BAA4B;IAC5B,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC5D,yBAAyB,CACvB,SAAS,EACT,QAAQ,EACR,eAAe,CAAC,MAAM,EACtB,MAAM,CAAC,MAAM,EACb,mBAAmB,CACpB,CAAC;IAEF,WAAW;IACX,MAAM,UAAU,GAAG,KAAK,EAAE,KAA6B,EAAiB,EAAE;QACxE,MAAM,aAAa,GAGd,EAAE,CAAC;QAER,+BAA+B;QAC/B,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,YAAY;YACZ,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YAEnF,aAAa;YACb,aAAa,CAAC,IAAI,CAAC;gBACjB,GAAG,EAAE;oBACH,SAAS,EAAE,SAAS;oBACpB,IAAI,EAAE;wBACJ,EAAE,EAAE,QAAQ;wBACZ,EAAE,EAAE,MAAM,CAAC,MAAM;wBACjB,YAAY,EAAE,MAAM,CAAC,aAAa;wBAClC,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;wBACnD,IAAI,EAAE;4BACJ,GAAG,MAAM,CAAC,WAAW;yBACtB;qBACF;oBACD,uCAAuC;oBACvC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBAC/E;aACF,CAAC,CAAC;YAEH,WAAW;YACX,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC3C,aAAa,CAAC,IAAI,CAAC;oBACjB,MAAM,EAAE;wBACN,SAAS,EAAE,SAAS;wBACpB,GAAG,EAAE;4BACH,EAAE,EAAE,QAAQ;4BACZ,EAAE,EAAE,QAAQ;yBACb;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;YAED,WAAW;YACX,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACxC,aAAa,CAAC,IAAI,CAAC;oBACjB,GAAG,EAAE;wBACH,SAAS,EAAE,SAAS;wBACpB,IAAI,EAAE;4BACJ,EAAE,EAAE,QAAQ;4BACZ,EAAE,EAAE,QAAQ;4BACZ,IAAI,EAAE,EAAE;yBACT;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAC3C,GAAG,EAAE,CACH,QAAQ,CAAC,IAAI,CACX,IAAI,oBAAoB,CAAC;YACvB,aAAa,EAAE,aAAa;YAC5B,sBAAsB,EAAE,OAAO;SAChC,CAAC,CACH,EACH,oBAAoB,CACrB,CAAC;QAEF,2CAA2C;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IAEF,uCAAuC;IACvC,MAAM,YAAY,GAAG,CAAC,KAA6B,EAAmC,EAAE,CACtF,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClD,oCAAoC;YACpC,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,gBAAgB,EAC1B,kEAAkE,EAClE,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,eAAe,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEL,YAAY;IACZ,MAAM,EACJ,cAAc,EACd,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,WAAW,GACpB,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAErE,eAAe;IACf,mDAAmD;IACnD,uCAAuC;IACvC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAmC,EAAE,CAAC;IACjD,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,MAAM,SAAS,GAAmC,EAAE,CAAC;IAErD,qBAAqB;IACrB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAEnB,wCAAwC;YACxC,IAAI,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE;oBACF,GAAG,MAAM,CAAC,WAAW;oBACrB,GAAG,MAAM,CAAC,QAAQ;iBACnB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE;oBACF,GAAG,MAAM,CAAC,QAAQ;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACnE,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,SAAS,CAAC,CAAC,CAAC,GAAG;gBACb,EAAE;gBACF,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,qBAAqB,EAAE,EAAE;aACnC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,CAAC,CAAC,GAAG;oBACb,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAEjD,sBAAsB;IACtB,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAE3D,wBAAwB,CACtB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,GAAG,CAAC,MAAM,EACV,KAAK,EACL,YAAY,CAAC,MAAM,EACnB,kBAAkB,EAClB;QACE,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,qBAAqB;QAChE,iBAAiB,EAAE,oBAAoB,CAAC,MAAM;QAC9C,oBAAoB,EAAE,cAAc,CAAC,MAAM;QAC3C,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,yBAAyB;KACrE,CACF,CAAC;IAEF,0BAA0B;IAC1B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,iBAAiB,CACf,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,GAAG,CAAC,MAAM,EACV,KAAK,EACL,YAAY,CAAC,MAAM,EACnB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAC3C;YACE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,qBAAqB;YACrE,mBAAmB,EAAE,oBAAoB,CAAC,MAAM;YAChD,sBAAsB,EAAE,cAAc,CAAC,MAAM;SAC9C,CACF,CAAC;IACJ,CAAC;IAED,eAAe;IACf,OAAO;QACL,KAAK;QACL,UAAU;QACV,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,gCAAgC;QACvC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;QAC9C,gBAAgB,EAAE,WAAW,CAAC,aAAa,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,UAAU;QACV,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC;QACD,cAAc;QACd,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC,gBAAgB,CAAC;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"updateMany.js","sourceRoot":"","sources":["../../../src/server/operations/updateMany.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +1,62 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GeoHash近隣検索ロジック
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 周囲 9 マス(中心 + 隣接 8 方向)のシャドーだけを読み、位置の近似から、確定できる範囲で打ち切る。
|
|
5
|
+
* 本体レコードは、最後に、結果になりうる候補だけを 1 回読む。
|
|
6
|
+
*
|
|
7
|
+
* 保証できる半径 r(p, 緯度) = 精度 p のマスの短い辺。検索点から r 以内の点は、必ず周囲 9 マスの中にある
|
|
8
|
+
* (検索点は中央のマスのどこにでもあるので、9 マスの縁までの最短距離は、マス 1 つぶんの短い辺)。
|
|
5
9
|
*/
|
|
6
10
|
import { type DocumentWithDistance, type GeoHashConfig, type NearQuery } from '../../shared/geohash/index.js';
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
/** シャドーの読み取り結果(SK の `<項目>#<geohash>#id#<ID>` から取り出したもの) */
|
|
12
|
+
export interface ShadowHit {
|
|
13
|
+
id: string;
|
|
14
|
+
/** シャドーの精度(`shadowPrecision`)の geohash。マスの中心を位置の近似とする */
|
|
15
|
+
geohash: string;
|
|
16
|
+
}
|
|
17
|
+
/** 近隣検索の結果 */
|
|
10
18
|
export interface NearSearchResult<T> {
|
|
11
19
|
/** 距離付きドキュメント */
|
|
12
20
|
documents: Array<T & DocumentWithDistance>;
|
|
13
21
|
/** 検索メタデータ */
|
|
14
22
|
metadata: {
|
|
15
|
-
/**
|
|
23
|
+
/** 検索反復回数(精度を下げた回数 + 1) */
|
|
16
24
|
iterations: number;
|
|
17
|
-
/**
|
|
25
|
+
/** 候補数(シャドーで見つけた件数) */
|
|
18
26
|
candidatesFound: number;
|
|
27
|
+
/** 本体を読んだ件数 */
|
|
28
|
+
bodiesRead: number;
|
|
19
29
|
/** 要求件数 */
|
|
20
30
|
requestedLimit: number;
|
|
31
|
+
/**
|
|
32
|
+
* 結果が、近い順の上位(`maxDistance` があればその内側の全件)であることを保証できるか。
|
|
33
|
+
* `minPrecision` まで下げても確定できなかったときは false(9 マスの中の候補だけを返す)
|
|
34
|
+
*/
|
|
35
|
+
exhaustive: boolean;
|
|
21
36
|
};
|
|
22
37
|
}
|
|
23
38
|
/**
|
|
24
|
-
*
|
|
39
|
+
* 精度 p で保証できる半径(メートル)= マスの短い辺
|
|
25
40
|
*
|
|
26
|
-
*
|
|
27
|
-
|
|
41
|
+
* 経度方向の幅は、周囲 9 マスのうち最も高緯度の縁の cos を使う(高緯度ほど狭い)。
|
|
42
|
+
*/
|
|
43
|
+
export declare function guaranteedRadius(precision: number, latitude: number): number;
|
|
44
|
+
/** シャドーの精度の位置の誤差 ε(メートル)= マスの対角線の半分(経度は赤道の長さで見て、上限にする) */
|
|
45
|
+
export declare function shadowPositionError(shadowPrecision: number): number;
|
|
46
|
+
/**
|
|
47
|
+
* 近隣検索を実行
|
|
48
|
+
*
|
|
49
|
+
* 1. 周囲 9 マスのシャドーを読み、近似の距離 d̃ を求める(重複は id で消える)
|
|
50
|
+
* 2. 上位 limit 件が 9 マスの中で確定する(d̃ₖ + ε ≤ r)か、円の全体を 9 マスが覆う(maxDistance + ε ≤ r)
|
|
51
|
+
* まで、精度を 1 つずつ下げて 1 に戻る(`minPrecision` まで)
|
|
52
|
+
* 3. d̃ が d̃ₖ + 2ε 以内の候補(maxDistance・minDistance があればその範囲)だけの本体を、1 回読む
|
|
28
53
|
*
|
|
29
54
|
* @param nearQuery - $nearクエリ
|
|
30
55
|
* @param fieldName - GeoHashフィールド名
|
|
31
56
|
* @param limit - 取得件数
|
|
32
|
-
* @param
|
|
57
|
+
* @param searchShadows - 1 マス(geohash の接頭辞)のシャドーを読む関数
|
|
58
|
+
* @param readBodies - id の本体を読む関数(ほかの条件で絞る場合は、ここで絞る)
|
|
33
59
|
* @param config - GeoHash設定
|
|
34
|
-
* @returns 距離付きドキュメントと検索メタデータ
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* ```typescript
|
|
38
|
-
* const result = await executeNearSearch(
|
|
39
|
-
* { latitude: 35.6812, longitude: 139.7671, maxDistance: 5000 },
|
|
40
|
-
* 'location',
|
|
41
|
-
* 10,
|
|
42
|
-
* async (geohashPrefix) => {
|
|
43
|
-
* // DynamoDBから検索
|
|
44
|
-
* return await collection.find({ geohash: { $regex: `^${geohashPrefix}` } }).toArray();
|
|
45
|
-
* }
|
|
46
|
-
* );
|
|
47
|
-
* ```
|
|
48
60
|
*/
|
|
49
|
-
export declare function executeNearSearch<T extends Record<string, unknown>>(nearQuery: NearQuery, fieldName: string, limit: number,
|
|
61
|
+
export declare function executeNearSearch<T extends Record<string, unknown>>(nearQuery: NearQuery, fieldName: string, limit: number, searchShadows: (geohashPrefix: string) => Promise<ShadowHit[]>, readBodies: (ids: string[]) => Promise<T[]>, config?: GeoHashConfig): Promise<NearSearchResult<T>>;
|
|
50
62
|
//# sourceMappingURL=nearSearch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nearSearch.d.ts","sourceRoot":"","sources":["../../../src/server/query/nearSearch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"nearSearch.d.ts","sourceRoot":"","sources":["../../../src/server/query/nearSearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,SAAS,EAQf,MAAM,+BAA+B,CAAC;AAKvC,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,cAAc;AACd,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,iBAAiB;IACjB,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAC3C,cAAc;IACd,QAAQ,EAAE;QACR,2BAA2B;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,uBAAuB;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW;QACX,cAAc,EAAE,MAAM,CAAC;QACvB;;;WAGG;QACH,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAqBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK5E;AAED,0DAA0D;AAC1D,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAGnE;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,EAC9D,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAC3C,MAAM,GAAE,aAAsC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAiG9B"}
|