Еще один полезный способ:
db.collection.aggregate([
{$group: {
_id: {
overallTime: {
$dateToString: { format: "%Y-%m-%dT%H", date: "$created_at" }
},
interval: { $trunc: { $divide: [{ $minute: "$created_at" }, 15 ]}}
},
}},
])
И проще в секундах min , hour , day :
var format = "%Y-%m-%dT%H:%M"; // 1 min
var format = "%Y-%m-%dT%H"; // 1 hour
var format = "%Y-%m-%d"; // 1 day
db.collection.aggregate([
{$group: {
_id: { $dateToString: { format: format, date: "$created_at" } },
}},
])
Пожалуйста, будьте точны, поскольку ваши наблюдения находятся в прямом противоречии с принятым ответом здесь . , кажется, не скован. не очень точен, либо есть, либо нет.
javax.validation.constraints.@NotNull
- это проверка JSR, поэтому она должна охватываться вышеуказанным ответом. Если нет, возможно, вы можете попытаться прокомментировать этот ответ.
Я бы посоветовал опубликовать вашу программу / настройку драйвера, так как сомневаюсь, что валидатор bean-компонента jsr может не вызываться в ваших экземплярах.
Вы должны понимать, что это конкретное поведение, перечисленное в ответе выше, очень специфично для процессоров аннотаций проверки бобов & amp; не имеет ничего общего с общим наследованием аннотаций в Java.
Просто не по теме, но пытаюсь включить эти ответы, чтобы понять Наследование аннотаций в Java,
Ответ -4 Spring MVC Validations
Просто для иллюстрации, нет сообщений об ошибках до строки - Bar bar = foo.getBar();
, но когда я провожу его через валидатор, я получаю сообщение - bar- may not be null
для обоих родителей & amp; ребенок,
@java.lang.FunctionalInterface
public interface FooChild extends Foo {
}
и программа водителя,
import java.util.Set;
import javax.validation.Configuration;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
public class DriverProgram {
public static void main(String[] args) {
Foo foo = () -> {
return null;
};
Bar bar = foo.getBar();
Configuration<?> config = Validation.byDefaultProvider().configure();
ValidatorFactory factory = config.buildValidatorFactory();
Validator validator = factory.getValidator();
factory.close();
Set<ConstraintViolation<Foo>> violations = validator.validate(foo);
violations.forEach(v -> System.out.println(v.getPropertyPath() + "- " + v.getMessage()));
FooChild fooChild = () -> {
return null;
};
bar = fooChild.getBar();
violations = validator.validate(fooChild);
violations.forEach(v -> System.out.println(v.getPropertyPath() + "- " + v.getMessage()));
}
}