Mongo你需要知道的冷知识——ObjectId

mongo的每一条数据都有一个主键_id,类型为ObjectId。ObjectId是由24位16进制数构成,例如:ObjectId("5c643f1cf146b1b8785fc39f")

前8位字符串:5c643f1c 代表插入的时间;那么我们可以根据这个特性来做一些时间上的查询

下面这个代码是根据传入时间生成一个objectId

/**
 * Created by speedyao on 2018/10/30.
 */
public class MongoUtil {
    private final static String SIXTEEN_0 = "0000000000000000";

    /**
     * 将时间转换成ObjectId
     *
     * @param date
     * @return
     */
    public static String parseDateToObjectId(Date date) {
        long l = date.getTime() / 1000;
        String s = Long.toHexString(l);
        return s + SIXTEEN_0;
    }
}

 如果我们想查两个时间段内的数据,那么我们生成两个ObjectId,在根据_id查询就行了。

 

你可能感兴趣的:(mongodb)