0

我在 MongoDB 的 runCommand 中遇到日期和日期时间问题。它一直在将我的日期保存为空。我不能使用 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);

它没有在字段 start_date 中保存“2018-02-09 00:00:00.0”值,而是存储了一个空值。

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

4

1 回答 1

1

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

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

就像是

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

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

于 2018-02-09T20:11:14.673 回答