MongoDB - 使用默认值为文档添加时间戳

时间:2016-08-08 09:08:46

标签: mongodb timestamp

我使用mongoimport将数据放入我的mongodb。原始数据没有时间戳,我希望跟踪createdupdated值。

我尝试从mongo CLI添加一个字段,它适用于: db.test.update({}, {$set : {"foo":1}}, {upsert:false, multi:true})

但最后,如果在导入另一批数据时字段不存在,我想在created updated)上添加default: Date.now()字段

我可以搞清楚。或者如果你有另一种方法可以做到这一点。谢谢!

1 个答案:

答案 0 :(得分:1)

假设您要添加字段ca:new Date仅在其不存在时,然后更新使用

    @Test
    public void testCreateCrawlerWithNoConfiguration() throws ExecutionException, InterruptedException {
    String mockUrl = "/version/" + VERSION + "/crawlers";
    Map<String, Object> data = new HashMap<>();
    data.put("configurationId", "null");
    data.put("startUrl", "http://blog.ahmetbutun.net");
    Future<Response> asyncRes = target(mockUrl).request(MediaType.APPLICATION_JSON_TYPE).header("userId", MOCK_CRAWLER_VALID_USER_ID).header("token", AUTHENTICATION_HEADER)
            .async().post(Entity.json(data));

    RestResponse response = asyncRes.get().readEntity(RestResponse.class);

    Assert.assertNotNull(response);
    Assert.assertEquals(AppConstants.ERROR_CODE_INVALID_CONFIGURATION_ID_EXCEPTION, response.getStatusCode());
    Assert.assertEquals(HttpStatus.BAD_REQUEST.value(), response.getMessage().getStatus());
}