Я новичок в Typescript и CosmosDB, это может быть довольно глупый вопрос, однако, я искал в Интернете весь день и не смог найти решение, которое отлично работает для моего случая. Надеюсь, кто-то хотел бы помочь здесь.
В основном я пытался реализовать RESTful API с помощью функции Azure (javascript / typescript), что именно API-интерфейсы подключают и запрашивают из моей Azure cosmosdb (sql). Связывание данных было тем, что я использовал для привязки базы данных к своим функциям. Дело в том, что я не уверен, как выбрать значение из БД в соответствии с определенным значением столбца (выберите идентификатор из таблицы, где username = "abc").
Чтобы сделать мой вопрос более понятным, вот мой пользовательский элемент вcosmos db:
{
"id": "1",
"userid": "33218898",
"username": "test1",
"password": "psw",
"email": "1@test.com",
"momentID": [
"1",
"2",
"3"
],
"followingID": [
"2",
"3"
],
"followerID": [
"2",
"3"
]
}
Вот как я получил пользователей от функции azure:
module.exports = async function (context, req, inputDocument) {
context.log('JavaScript HTTP trigger function processed a request.');
if (!!inputDocument && inputDocument.length > 0) {
if(req.query.id || (req.body && req.body.id)){
context.res = {
// status: 200, /* Defaults to 200 */
body: "User with id [" + req.query.id + "] is :" + inputDocument[req.query.id-1].username
};
}
else if(req.query.name || (req.body && req.body.name)){
const user = inputDocument.select("[@username='test1_update']");
const userid = user.id;
context.log('User id with username :' , userid);
}else{
var arr_user = new Array(inputDocument.length);
for(var _i = 0; _i <inputDocument.length; _i++)
{
arr_user[_i] = inputDocument[_i].username;
}
context.res = {
status: 200,
body: "Hello " + arr_user
};
context.log('Username: ', arr_user);
}
}
else{
context.log('Nothing in the inputDocument');
}
};
Кажется, что select не является определенной функцией в машинописи, может кто-нибудь любезно помочь с этим?