我在MongoDB的runCommand中遇到日期和日期时间问题。它一直将我的日期保存为null。我无法使用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'字段start_date中的值一直存储空值。
您能否帮助我设置查询字符串以保存日期? 还有其他选项如何在runCommand中使用日期?
答案 0 :(得分:1)
您没有ISO投诉字符串,因此解析器返回null。
使用ISO字符串,它会没事的。更多here
像
这样的东西"'start_date': { $date: \"2018-02-09T00:00:00.000Z\" }"
Btw命令是低级别界面,您应该使用update
中提供的findAndModify
,DBCollection
等方法。