我正在尝试为Azure CosMos DB的原始操作构建一般性战争。这个想法是在没有任何模型对象的情况下建立一般战争,而该模型对象只会接收具有集合ID,查询参数的json输入。我们将基于JSON Input中接收的查询参数构建查询,并对集合中的文档运行查询。这样一来,如果对任何模型对象进行任何更改,我们就不必每次都改变这种战争。
因此,我已经构建了一个示例,但是无法运行select查询。因此可以使用cosmosdb构建这样的项目,如果可以的话,可以使用group by,order by子句来帮助运行sql查询。
我检查了Microsoft网站,发现了许多链接,但是它们在制作诸如AndersonFamily,wakeFamily之类的模型对象并正在使用它们。就我而言,我不希望战争中有任何模型对象,我希望它是通用的,这样战争不会在模型对象的每次更改时都改变。
示例代码:
try {
DocumentClient documentClient = AzureCosmosDBFactory.getDocumentClient();
DocumentCollection documentCollection = AzureCosmosDBClient.getDocumentCollection();
List documents = AzureCosmosDBFactory.getDocumentClient().queryDocuments(AzureCosmosDBClient.getDocumentCollection().getSelfLink(), "select c.data.companyid from c", null).getQueryIterable().toList();
if (documents.size() > 0) {
return new ResponseEntity(documents, HttpStatus.OK);
} else {
return new ResponseEntity(PropertyConstants.DATA_NOT_FOUND, HttpStatus.NOT_FOUND);
}
}catch(Throwable t){
t.printStackTrace();
return new ResponseEntity(PropertyConstants.INTERNAL_SERVER_ERROR+ t.getCause() , HttpStatus.INTERNAL_SERVER_ERROR);
}
现在,在这里,当我从c中执行select *时,我将得到正确的响应。但是当我从c中选择c.data.companyid时,我没有得到正确的数据。