Я разрабатываю систему для больших объемов данных. В настоящее время я тестирую хранимую процедуру в коллекции с менее чем 300 тыс. документов.
Я следую этому примеру: Программирование на стороне сервера DocumentDB: хранимые процедуры, база данных триггеры и определяемые пользователем функции
"createDocument" и "replaceDocument" пока работают нормально. Но queryDocuments вообще не работает, сколько бы я ни пробовал. Я пытался поместить исключение исключения во многих местах, но исключение исключения внутри callBack вообще не попадает.
Кто-нибудь успешно использовал queryDocuments() в хранимой процедуре?
function MoveTree(nodeJson, targetParentNodeJson) {
var node = JSON.parse(nodeJson);
var targetParentNode = JSON.parse(targetParentNodeJson);
var collection = getContext().getCollection();
var collectionLink = collection.getSelfLink();
var count = 0;
//<==Tried put throw exception here and it is hit
var node;
var IsAccept = collection.queryDocuments(
collection.getSelfLink(),
'SELECT * FROM Nodes p where p.id = "' + nodeId + '"',
function (err, documents, responseOptions) {
//<==Tried put throw exception here but it is not hit
if (err) throw new Error(err);
if (!documents || documents.length != 1) throw new Error("Unable to find node.");
node = documents[0];
//<==Tried put throw exception here but it is not hit
});
//<==Tried put throw exception here and it is hit
//... }
nodeIdникогда не устанавливается. Вы имели в виду, что это targetParentNode._id? Кроме того, у вас есть дваvar node... объявленных в одной области. Тем не менее, я бы не подумал, что любой из них предотвратит вызов обратного вызова. Я бы подумал, что это просто выдаст ошибку «Невозможно найти узел». - person Larry Maccherone   schedule 30.01.2016