Я пытаюсь вставить несколько документов в Cosmos DB с Mongo Api, который имеет ключ шарда, следующим образом:
insertAll(trips.stream().map(t -> Document.parse(gson.toJson(t))).collect(Collectors.toList()),"trip");
Метод insertAll выглядит следующим образом:
private void insertAll(List<Document> data, String collectionName) {
MongoCollection<Document> collection = mongoTemplate.getCollection(collectionName);
collection.insertMany(data);
}
Идокументы, которые я пытаюсь вставить, следующие:
Document{{sensorId=b827ebe942b7, liftId=1edb945b-29e7-c6c7-d20b-87c0, timestamp=1554902007838, .......}}
Несмотря на то, что я предоставляю ключ шарда, который liftId
, я получаю исключение, в котором должен быть указан один ключ шарда.
Command failed with error 61: 'query in command must target a single shard key' on server cdb-ms-prod-southeastasia1-fd10.documents.azure.com:10255.
The full response is { "_t" : "OKMongoResponse", "ok" : 0, "code" : 61, "errmsg" : "query in command must target a single shard key", "$err" : "query in command must target a single shard key" }; nested exception is com.mongodb.MongoCommandException: Command failed with error 61: 'query in command must target a single shard key' on server cdb-ms-...-fd10.documents.azure.com:someport. The full response is { "_t" : "OKMongoResponse", "ok" : 0, "code" : 61, "errmsg" : "query in command must target a single shard key", "$err" : "query in command must target a single shard key" }
Любая помощь, чтобы исправить это?Я пользуюсь spring data mongodb