Установить datetime внутри runCommand в mongoDB

У меня проблема с датой и датой и временем внутри runCommand MongoDB. Это спасло мою дату в нуле. Я не мог использовать ISODate(), потому что он дает ошибку. Переменная $date не показала мне ошибку, но она напустила нулевое значение.

Это строка запроса mongoDB, которую я выполняю из приложения Java:

{
  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' в поле start_date было сохранено нулевое значение.

Не могли бы вы помочь мне, как настроить строку запроса, чтобы сохранить дату? Есть ли другие варианты, как я использую дату с runCommand?

1 ответ

У вас нет строки жалобы ISO, поэтому парсер возвращает ноль.

Используйте строку ISO, и все будет хорошо. Больше here

Что-то вроде

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

Кстати, команда является интерфейсом низкого уровня, и вы должны использовать такие методы, как update, findAndModify предоставляется в DBCollection,

Другие вопросы по тегам