Javascript 如何根据条件从COSMOS DB中选择记录

Javascript 如何根据条件从COSMOS DB中选择记录,javascript,sql,azure-cosmosdb,Javascript,Sql,Azure Cosmosdb,我在Azure Cosmos数据库中有一个文档 其内容包括: { “id”:“58d56db3b3f730153cab383c”, “活动日期”:“2017-02-11T19:04:18Z”, ... ... } 我有一个要求,选择的文件是超过3天只 为此,我写了: //示例存储过程 function deleteActivitiesBackDate(numberOfDays) { var context = getContext(); var collection = context.

我在Azure Cosmos数据库中有一个文档

其内容包括:

{
“id”:“58d56db3b3f730153cab383c”,
“活动日期”:“2017-02-11T19:04:18Z”,
...
...
}

我有一个要求,选择的文件是超过3天只

为此,我写了: //示例存储过程

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;
    }
}
函数deleteActivitiesBackDate(number天){
var context=getContext();
var collection=context.getCollection();
var link=collection.getSelfLink();
var response=context.getResponse();
var targetDate=新日期();
targetDate.setDate(targetDate.getDate()-3);
console.log(“targetDate为”+targetDate);
变量查询='从活动a中选择*,其中a.activityDate<“+targetDate+”;
var run=collection.queryDocuments(链接、查询、{}、回调);
函数回调(错误、文档){
如果(错误){
返回errorResponse(400,错误消息);
}
如果(docs.length>0){

对于(var i=0;i我认为您希望更改select语句的外观,使用.toISOString()函数,如下所示:

var query = 'SELECT * FROM activities a WHERE a.activityDate < "' + targetDate.toISOString()+ '"';
为此:

targetDate.setDate(targetDate.getDate() - numberOfDays);

什么意思,
activityDate
的类型是
var
?这不是一种类型。日期属性在文档中是什么样子的?是否存储为历元?是否存储为格式化字符串?以及
targetDate
呈现为什么?
targetDate.setDate(targetDate.getDate() - numberOfDays);