在 RethinkDB 中直接获取插入的文档
Get inserted document directly in RethinkDB
我开始使用 RethinkDB。我已经阅读了文档。我有一个简单的用例,即在进行 POST 调用时返回插入的文档。这是我到目前为止所做的事情。
router.post('/user', jsonParser, async (req: Request, res: Response) => {
const connection = await conn;
const { name, email, employeeId } = req.body;
// Email is primary key
consumerTable.insert({
name,
email,
employeeId,
}).run(connection, (err: any, result: any) => {
if (err) {
throw err;
} else {
consumerTable.get(email).run(connection, (innerErr: any, userResult: any) => {
if(innerErr) {
throw innerErr;
} else {
res.send({
data: {
...userResult
},
responseCode: 200,
});
}
});
}
});
});
有没有办法在插入结果本身中获取插入的对象。我阅读了很多文档,但没有找到任何有用的东西。
任何帮助都会很棒。干杯!
您可以使用 the documentation 中指定的 insert
命令的 returnChanges
选项。它应该是这样的:
consumerTable.insert({
name,
email,
employeeId,
}, { returnChanges: true }).run(connection, async (err: any, cursor: any) => {
const data = await cursor.toArray();
// .error should be undefined, unless... an error happened!
// not sure about the format though, console.log data to check it really is an array
res.send({ data: data[0].new_val, error: data[0].error });
});
我开始使用 RethinkDB。我已经阅读了文档。我有一个简单的用例,即在进行 POST 调用时返回插入的文档。这是我到目前为止所做的事情。
router.post('/user', jsonParser, async (req: Request, res: Response) => {
const connection = await conn;
const { name, email, employeeId } = req.body;
// Email is primary key
consumerTable.insert({
name,
email,
employeeId,
}).run(connection, (err: any, result: any) => {
if (err) {
throw err;
} else {
consumerTable.get(email).run(connection, (innerErr: any, userResult: any) => {
if(innerErr) {
throw innerErr;
} else {
res.send({
data: {
...userResult
},
responseCode: 200,
});
}
});
}
});
});
有没有办法在插入结果本身中获取插入的对象。我阅读了很多文档,但没有找到任何有用的东西。
任何帮助都会很棒。干杯!
您可以使用 the documentation 中指定的 insert
命令的 returnChanges
选项。它应该是这样的:
consumerTable.insert({
name,
email,
employeeId,
}, { returnChanges: true }).run(connection, async (err: any, cursor: any) => {
const data = await cursor.toArray();
// .error should be undefined, unless... an error happened!
// not sure about the format though, console.log data to check it really is an array
res.send({ data: data[0].new_val, error: data[0].error });
});