@exabugs/dynamodb-client 1.3.12 → 1.3.14
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 +15 -0
- package/dist/server/handler.cjs +8 -5
- package/dist/server/handler.cjs.map +2 -2
- package/dist/server/operations/find/nearQuery.d.ts.map +1 -1
- package/dist/server/operations/find/nearQuery.js +10 -7
- package/dist/server/operations/find/nearQuery.js.map +1 -1
- package/package.json +1 -1
|
@@ -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;AAS1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,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;AAS1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CA+IrB"}
|
|
@@ -5,7 +5,7 @@ import { QueryCommand } from '@aws-sdk/lib-dynamodb';
|
|
|
5
5
|
import { DEFAULT_GEOHASH_CONFIG } from '../../../shared/geohash/index.js';
|
|
6
6
|
import { createLogger } from '../../../shared/index.js';
|
|
7
7
|
import { executeNearSearch } from '../../query/nearSearch.js';
|
|
8
|
-
import { executeDynamoDBOperation, getDBClient, getTableName,
|
|
8
|
+
import { executeDynamoDBOperation, extractCleanRecord, getDBClient, getTableName, } from '../../utils/dynamodb.js';
|
|
9
9
|
const logger = createLogger({
|
|
10
10
|
service: 'near-query',
|
|
11
11
|
level: process.env.LOG_LEVEL || 'info',
|
|
@@ -40,7 +40,8 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
40
40
|
skPrefix: `${fieldName}#${geohashPrefix}`,
|
|
41
41
|
});
|
|
42
42
|
// シャドウレコードを検索
|
|
43
|
-
// SK
|
|
43
|
+
// SKプレフィックス: location#<geohash>
|
|
44
|
+
// 完全なSK: location#<geohash>#id#<venue-id>
|
|
44
45
|
const queryResult = await executeDynamoDBOperation(() => dbClient.send(new QueryCommand({
|
|
45
46
|
TableName: tableName,
|
|
46
47
|
KeyConditionExpression: 'PK = :pk AND begins_with(SK, :skPrefix)',
|
|
@@ -58,7 +59,8 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
58
59
|
count: shadowRecords.length,
|
|
59
60
|
});
|
|
60
61
|
// 本体レコードのIDを抽出
|
|
61
|
-
// SK
|
|
62
|
+
// 完全なSK: location#<geohash>#id#<venue-id>
|
|
63
|
+
// #id#で分割して venue-id を取得
|
|
62
64
|
const mainRecordIds = shadowRecords
|
|
63
65
|
.map((item) => {
|
|
64
66
|
const sk = item.SK;
|
|
@@ -74,12 +76,13 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
74
76
|
ids: mainRecordIds,
|
|
75
77
|
});
|
|
76
78
|
// 本体レコードを取得
|
|
79
|
+
// PK: venues, SK: id#<venue-id>
|
|
77
80
|
const mainRecords = await Promise.all(mainRecordIds.map(async (id) => {
|
|
78
81
|
const result = await executeDynamoDBOperation(() => dbClient.send(new QueryCommand({
|
|
79
82
|
TableName: tableName,
|
|
80
83
|
KeyConditionExpression: 'PK = :pk AND SK = :sk',
|
|
81
84
|
ExpressionAttributeValues: {
|
|
82
|
-
':pk': resource,
|
|
85
|
+
':pk': resource, // venues
|
|
83
86
|
':sk': `id#${id}`,
|
|
84
87
|
},
|
|
85
88
|
ConsistentRead: true,
|
|
@@ -98,10 +101,10 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
98
101
|
// 9ブロック検索を実行
|
|
99
102
|
const result = await executeNearSearch(nearQuery, fieldName, limit, searchFunction, DEFAULT_GEOHASH_CONFIG);
|
|
100
103
|
// クリーンなレコードに変換
|
|
101
|
-
//
|
|
104
|
+
// mainレコードはdata属性を持つので、extractCleanRecordを使用
|
|
102
105
|
const items = result.documents.map((doc) => {
|
|
103
|
-
// __shadowKeys等の内部フィールドを除外
|
|
104
|
-
const cleanRecord =
|
|
106
|
+
// data.__shadowKeys等の内部フィールドを除外
|
|
107
|
+
const cleanRecord = extractCleanRecord(doc);
|
|
105
108
|
// 距離情報を追加
|
|
106
109
|
return {
|
|
107
110
|
...cleanRecord,
|
|
@@ -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,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"nearQuery.js","sourceRoot":"","sources":["../../../../src/server/operations/find/nearQuery.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exabugs/dynamodb-client",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.14",
|
|
4
4
|
"description": "DynamoDB Single-Table Client SDK with MongoDB-like API, Shadow Records, and Lambda implementation for serverless applications",
|
|
5
5
|
"author": "exabugs",
|
|
6
6
|
"license": "MIT",
|