1
私はAzure Cosmos DBに文書を持っています。条件に応じてCOSMOS DBからレコードを選択する方法
ITSは含まれています:
{ "id": "58d56db3b3f730153cab383c", "activityDate": "2017-02-11T19:04:18Z", ... ... }
私は3日より古い文書を選択するための要件を持っています。そのため
私が書かれています: // SAMPLEストアドプロシージャ
function deleteActivitiesBackDate(numberOfDays) {
var context = getContext();
var collection = context.getCollection();
var link = collection.getSelfLink();
var response = context.getResponse();
var targetDate = new Date();
targetDate.setDate(targetDate.getDate() - 3);
console.log("targetDate is "+targetDate);
var query = 'SELECT * FROM activities a WHERE a.activityDate < "' + targetDate+ '"';
var run = collection.queryDocuments(link, query, {}, callback);
function callback(err, docs) {
if (err){
return errorResponse(400, err.message);
}
if (docs.length > 0){
for(var i =0;i<docs.length;i++){
deleteDoc(docs[i]);
}
}else {
return errorResponse(400, "The document was not found.");
}
}
if (!run) {
return errorResponse(400, "The document could not be deleted.");
}
function deleteDoc(document) {
var docDeleted = collection.deleteDocument(document._self, function(err, result){
if (err){
return errorResponse(400, err.message);
}
response.setBody(result);
});
if (!docDeleted) {
return errorResponse(400, "The document could not be deleted.");
}
};
function errorResponse(code,message){
var errorObj = {};
errorObj.code = code;
errorObj.message = message;
errorObj.date = getDateTime();
return response.setBody(errorObj);
}
function getDateTime(){
var currentdate = new Date();
var dateTime = currentdate.getFullYear() + "-" +(currentdate.getMonth()+1)+ "-" + currentdate.getDate()+ " " +currentdate.getHours()+":"+currentdate.getMinutes()+":"+currentdate.getSeconds();
return dateTime;
}
}
を、私はそれを固定し得るために何ができますか?あなたが現在のselect文は、日付()オブジェクトに文字列プロパティを比較している
var query = 'SELECT * FROM activities a WHERE a.activityDate < "' + targetDate.toISOString()+ '"';
:
あなたは何を意味するか、activityDate' 'のタイプは、' var'のですか?それはタイプではありません。ドキュメント内の日付プロパティはどのように見えますか?エポックとして保管していますか?フォーマットされた文字列として?そして、 'targetDate'は何をレンダリングしますか? –