lucasOriginal post
Rank 1: Thread
async function test() {
try {
const input = {}
const extracted = Object.values(input).map(item => ({
$id: item.postId,
postId: item.postId,
uniqueId: item.uniqueId
}));
const queueResponse = await tables.listRows({
databaseId: "data-database-id",
tableId: "queue-table-id",
queries: [
Query.equal("$id", extracted.map(item => item.postId)),
Query.limit(100)
]
});
console.log("Existing posts fetched:", queueResponse);
for (const row of extracted) {
const response = await tables.listRows({
databaseId: "data-database-id",
tableId: "queue-table-id",
queries: [
Query.equal("$id", row.postId)
]
});
console.log(`${extracted.indexOf(row)}th postId Exists: ${response.total > 0}`);
}
const createResponse = await tables.createRows({
databaseId: "data-database-id",
tableId: "queue-table-id",
rows: extracted.map(item => ({
$id: item.postId,
postId: item.postId,
uniqueId: item.uniqueId
}))
});
console.log("New posts created:", createResponse);
} catch (error) {
console.error("Error in test:", error);
}
}
test();
Summary
A developer encountered an issue where Appwrite claimed that a row with a requested ID existed when it didn't. The problem was due to multiple records sharing a postId. The solution was to ensure unique IDs or use ID.unique() to generate one.