Установить 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
,