Используйте этот код, чтобы найти запись между двумя датами, используя $gte
и $lt
:
db.CollectionName.find({"whenCreated": {
'$gte': ISODate("2018-03-06T13:10:40.294Z"),
'$lt': ISODate("2018-05-06T13:10:40.294Z")
}});
Можно использовать экс-режим (p) rint команда для печати любого набора строк, которые Вы хотите к stdout.
печать все строки:
:1,$p
Также печать все строки (% является сокращением от диапазона 1, $)
:%p
строки печати 4-10:
:4,10p
следующая строка печати, содержащая НЕЧТО
/FOO/ p
печать все строки, содержащие НЕЧТО
g/FOO/ p
Поскольку вы используете Linux / Unix, вам также может быть интересно попробовать moreutils . Он предоставляет команду под названием vipe
, которая читает из stdin
, позволяет редактировать текст в $ EDITOR
, а затем печатает измененный текст в стандартном выводе .
.
Убедитесь, что в вашем редакторе установлен Vim:
export EDITOR=vim
А затем вы можете попробовать следующие примеры:
cat /etc/fstab | vipe
cut -d' ' -f2 /etc/mtab | vipe | less
Чтение из stdin:
echo "hey" | vim -
Когда вы :w
, вам все равно придется дать ему имя файла.
Программы, использующие vim
в качестве EDITOR
, например crontab -e
, передают ему имя файла, чтобы пользователь мог просто :x
и не беспокоиться об именах файлов.
EDIT
Вы также можете сделать что-то вроде этого:
mkfifo /tmp/some_pipe
echo "hey" > /tmp/some_pipe ; cat /tmp/some_pipe
И из другого процесса (или терминала)
vim /tmp/some_pipe
Имейте в виду, что запись в трубу будет блокироваться, пока что-то не прочитает из нее, а чтение будет блокироваться, пока что-то не запишет в нее, поэтому безопаснее использовать обычные файлы.