如何替换JSON格式字符串中date、format字段的非字符串值?
替换MongoDB风格JSON中的date和format字段值
核心说明
你给出的输入输出并非标准JSON,而是MongoDB Shell使用的扩展JSON语法,其中ISODate()和NumberLong()是MongoDB专属的类型构造函数,不属于标准JSON范畴。
手动替换操作
直接定位对应字段替换值即可,注意格式要求:
date字段替换为ISODate(YYYY-MM-DDTHH:mm:ss.sssZ)格式,时间需严格符合ISO 8601标准,例如ISODate(2022-07-17T21:45:50.955Z)format字段替换为NumberLong(数字值)格式,例如NumberLong(100307006)
脚本批量/动态替换示例(JavaScript,MongoDB Shell环境)
如果需要批量处理或动态生成目标格式,可以用以下脚本:
// 原始数据 const originalData = { "date": "dummydate", "format": "dummyformat", "name": "kumar" }; // 替换字段值 originalData.date = ISODate("2022-07-17T21:45:50.955Z"); originalData.format = NumberLong(100307006); // 输出结果 printjson(originalData);
执行后会直接输出符合要求的MongoDB扩展JSON内容。
跨语言处理注意事项
如果在其他编程语言中生成这类格式,需要借助MongoDB官方驱动提供的类型工具:
- Python(pymongo):用
datetime.datetime类型表示日期(会自动转为ISODate),用bson.int64.Int64表示长整数(对应NumberLong) - Java:用
org.bson.types.Date和org.bson.types.Long对应目标类型
内容的提问来源于stack exchange,提问作者Kumar
相关产品推荐
相关产品推荐

