@exabugs/dynamodb-client 1.3.12 → 1.3.15
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 +24 -0
- package/dist/server/handler.cjs +12 -12
- 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 +16 -15
- 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,CA6IrB"}
|
|
@@ -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,
|
|
@@ -93,21 +96,19 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
93
96
|
geohashPrefix,
|
|
94
97
|
count: validRecords.length,
|
|
95
98
|
});
|
|
96
|
-
|
|
99
|
+
// __shadowKeysを除外
|
|
100
|
+
// searchFunctionが返すレコードは既にクリーンな形式(data属性なし)
|
|
101
|
+
// extractCleanRecordではなくremoveShadowKeysを使用
|
|
102
|
+
return validRecords.map((record) => removeShadowKeys(record));
|
|
97
103
|
};
|
|
98
104
|
// 9ブロック検索を実行
|
|
99
105
|
const result = await executeNearSearch(nearQuery, fieldName, limit, searchFunction, DEFAULT_GEOHASH_CONFIG);
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
const items = result.documents.map((doc) => {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return {
|
|
107
|
-
...cleanRecord,
|
|
108
|
-
__distance: doc.__distance,
|
|
109
|
-
};
|
|
110
|
-
});
|
|
106
|
+
// searchFunctionが既にクリーンなレコードを返しているので、
|
|
107
|
+
// 距離情報を追加するだけでよい
|
|
108
|
+
const items = result.documents.map((doc) => ({
|
|
109
|
+
...doc,
|
|
110
|
+
__distance: doc.__distance,
|
|
111
|
+
}));
|
|
111
112
|
logger.info('$near query succeeded', {
|
|
112
113
|
requestId,
|
|
113
114
|
resource,
|
|
@@ -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,EACZ,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,OAAO,EAAE,YAAY;IACrB,KAAK,EAAG,OAAO,CAAC,GAAG,CAAC,SAAiD,IAAI,MAAM;CAChF,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,SAAiB,EACjB,SAAoB,EACpB,KAAa,EACb,SAAiB;IAEjB,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;QACpC,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,KAAK;KACN,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,cAAc,GAAG,KAAK,EAAE,aAAqB,
|
|
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.15",
|
|
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",
|