在mongoDB中的runCommand内设置日期时间

在mongoDB中的runCommand内设置日期时间,mongodb,datetime,mongodb-query,aggregation-framework,runcommand,Mongodb,Datetime,Mongodb Query,Aggregation Framework,Runcommand,我对MongoDB的runCommand中的date和datetime有问题。它已将我的日期保存为空。我无法使用ISODate(),因为它给出了一个错误。变量$date没有向我显示错误,但它存储了空值 这是我从Java应用程序执行的mongoDB查询字符串: { q: { 'person_id': '1003', 'authoriz.auth_id': { $ne: '1025' } }, u: { $addToSet: { 'authoriz': {

我对MongoDB的runCommand中的date和datetime有问题。它已将我的日期保存为空。我无法使用ISODate(),因为它给出了一个错误。变量$date没有向我显示错误,但它存储了空值

这是我从Java应用程序执行的mongoDB查询字符串:

{
  q: {
    'person_id': '1003', 'authoriz.auth_id': { $ne: '1025' }  },
  u: {
    $addToSet: {
      'authoriz': {
        'decision': "TRUE",
        'start_date': { $date: "2018-02-09 00:00:00.0" },
        'decision_id': 125,
        'decision_dsc': "PERMITED",
        'block_id': "1025"
      }
    },
    $currentDate: {
      'last_modified': true
    }
  },
  multi: false,
  upsert: false
}
在Java中:

DBObject dbObject = (BasicDBObject) JSON.parse(query);
CommandResult result =anyDB.command(dbObject);
它没有将“2018-02-09 00:00:00.0”值保存在“开始日期”字段中,而是存储了一个空值

您能帮助我如何设置查询字符串以保存日期吗?
是否还有其他选项可以选择如何将date与runCommand一起使用?

您没有ISO投诉字符串,因此解析器返回null

使用ISO字符串就可以了。更多

差不多

"'start_date': { $date: \"2018-02-09T00:00:00.000Z\" }"

顺便说一句,命令是低级接口,您应该使用
DBCollection

中提供的
update
find和modify
等方法,以便可以操纵输入字符串以符合ISO 8601:
“2018-02-09 00:00:00.0”。替换(“,”T”)。concat(“Z”)
您有机会验证答案吗?