Мне нужно реализовать автоинкремент для целочисленного свойства при вставке документа в коллекцию БД документов.Я хотел решить эту проблему, используя триггер предварительного создания, который просто находит максимальное значение и увеличивает его.Этот подход хорошо работает для простого сбора, но есть проблема при использовании многораздельного: даже после указания { enableCrossPartitionQuery: true }
мой запрос ограничивается разделом, в который я вставляю документ.
function trigger(){
var context = getContext();
var collection = context.getCollection();
var request = context.getRequest();
// document to be created in the current operation
var documentToCreate = request.getBody();
//query for max value
var filterQuery = 'SELECT value MAX(r.Id) FROM root r';
var result = collection.queryDocuments(collection.getSelfLink(), filterQuery,
{ enableCrossPartitionQuery: true }, callback);
function callback(err, documents, responseOptions) {
if(err) throw new Error("Error" + err.message);
var maxId = documents[0] || 0;
documentToCreate["Id"] = ++maxId;
request.setBody(documentToCreate);
}
}
То есть можно выполнить запрос разветвления из триггера?