Araik
тогда ругается, что $or должен быть массивом
Araik
Nick
ну у вас должно быть [0] => для первого статуса и потом [1]=> для второго
Araik
а блин, только увидел! спасибо, сейчас попробую
Nick
а что за язык такой дикой?
Araik
php ))
Nick
уфф
Araik
все заработало, спасибо еще раз))
Anton
Добрый день!
подскажите, пожалуйста, что не так с запросом?
db.orders.updateMany({
$and: [
{
created: {
$gte: new ISODate('2020-03-06T00:00:00.000Z')
}
},
{
created:
{
$lte: new ISODate('2020-03-07T00:00:00.000Z')
}
}
]
},
[
{
$set: {
'payment.amount': {
$ceil: '$payment.amount'
}
}
}
]);
Anton
получаю ошибку
Invalid BSON field name 0
Daniil
Почему второй аргумент массив? Должен быть объект
Anonymous
hi
anyone know use mongodb?
Anonymous
places
Anton
Daniil
версия монги?
Anton
Алишер Абдуллаев
Фронтенд отправляет запрос - это таймстемп from_date & to_date.
"from_date”: "2020-03-00T10:00:00.000Z",
"to_date”: "2020-03-10T10:00:00.000Z”
Есть документы в монгодб , с датой createdAt.
Задача , нужно распределять документов по дням и посчитать сколько штук в день.
Алишер Абдуллаев
где можно сделать валидацию ? в $group _id не получается
Dmitriy
у вас стандартная задача на группировку по дням, примерно так реализующаяся (далее зависит от ваших нюансов):
...aggregate
{$group: {
_id : { $dateToString: { format: "%Y-%m-%d", date: "$createdAt" } },
"count": {$sum: 1}
}
])
подробнее в документации по $group https://docs.mongodb.com/manual/reference/operator/aggregation/group/
Алишер Абдуллаев
Dmitriy
это группирует по дням, у вас в формулировке задачи про сортировку не было ничего сказано)
Алишер Абдуллаев
Алишер Абдуллаев
Алишер Абдуллаев
Алишер Абдуллаев
не получается по датам разделить
Dmitriy
что не получается?
Dmitriy
дата в каком формате хранится в базе?
Алишер Абдуллаев
ISODate
Алишер Абдуллаев
timesatamp
Dmitriy
так и что не получается то? ошибка на выходе или что?
Dmitriy
честно в угадайку нет ни какой возможности играть, если вы хотите помощи давайте уже как-то диалог строить
Алишер Абдуллаев
простите , фиксил баг
Алишер Абдуллаев
Dmitriy
пока я вижу стрингу, а не ISODate
Boris
Всем привет!
Boris
Есть 2 коллекции, в обоих необходимо произвести поиск по определнному параметру, и вернуть ту, в которой поиск дал положительнй результат, как можно такое реализовать?
Nick
Tsikhan
Добрый день! подскажите пожалуйста как сделать mongodump исключив определенную базу. В доках нашел только как исключить коллекцию.
yopp
yopp
А, две коллекции.
Илья
const mailsForNotifications = await this.userRepository.find({
isEmailNotifications: true,
roles: 'CASE_MANAGER',
})
У меня запрос так проходит в робо, а из ide пишет ошибку, что тип не совпадает, там enum.
export enum Roles {
PROVIDER,
CASE_MANAGER,
ADMIN,
}
@Column()
roles: Roles[];
roles: Roles.CASE_MANAGER,
Писал вот так, тоже не прошло, втф?
Type 'Roles.CASE_MANAGER' is not assignable to type 'any[] | FindOperator<any[]>'.
Nick
const mailsForNotifications = await this.userRepository.find({
isEmailNotifications: true,
roles: 'CASE_MANAGER',
})
У меня запрос так проходит в робо, а из ide пишет ошибку, что тип не совпадает, там enum.
export enum Roles {
PROVIDER,
CASE_MANAGER,
ADMIN,
}
@Column()
roles: Roles[];
roles: Roles.CASE_MANAGER,
Писал вот так, тоже не прошло, втф?
Type 'Roles.CASE_MANAGER' is not assignable to type 'any[] | FindOperator<any[]>'.
скажите хоть какой язык и фреймворк
Илья
Nest.js typescript, typeorm
Nick
тепрь больше шансов что ктото ответит
Anonymous
Ребят привет. Подскажите плиз
Есть документ в котором содержится поля about и в нем содержится массив
["bmw","cars"];
или
["cars","bmw"];
Мне нужно найти именно ["bmw","cars"], elemMatch делает поиск, но мне нужно по порядку иначе он найдет два документа
Ilya
а если просто без elemMatch сделать что то типа:
db.collection.find("about": ["bmw","cars"])
Nick
Ilya
он же вроде не должен найти ["cars","bmw"]
Anonymous
а какой в этом смысл сам по себе? почему порядок важен?
извиняясь. я видно не так передал смысл
one = [
{
name:"cars"
},
{
name:"bmw"
},
{
name:"..."
}
];
two = [
{
name:"bmw"
},
{
name:"cars"
},
{
name:"..."
}
];
Вопрос такой же
Nick
Nick
и вам нужно по всему массиву так искать совпадения на случайных местах или всегда только по первым двум?
Anonymous
Anonymous
Nick
ничего подходящего в монге чтото не нашлось, все необходимые операции над массивами доступны только в агрегациях, а в поиске - увы
Anonymous
Dmitriy
Добрый день, может подскажите куда копать.
Есть standalone монга 3.2.22 на сервере с Ubuntu, путь к базам /var/lib/mongodb . Попробовал перезапустить ее как реплика сет добавив replication.replSetName: rs0 в /etc/mongod.conf - но перестали видится старые коллекции (базы видны, но в них нет ни одной коллекции).
Если убрать из конфига replication.replSetName: rs0 - то снова нормально стартует в standalone
При этом такие же манипуляции на тестовой конфигурации привели к корректному рестарту и все коллекции были видны. Из различий конфигов пока раскопал только, что на тесте нет параметра storage.directoryPerDB: true, но в гугле ничего про влияние этого параметра не нашел и сами базы сет увидел
Araik
Подскажите пжл, как правильно работать с датой? Вот у меня есть поле с датой, делаю выборку, но не все документы попадают в выборку, хотя дата в нужном диапазоне
Araik
так выглядит документ в коллекции, который не удается вытащить с помощью запроса
Araik
Dmitry
'timestamp': {
$gte: ISODate('2019-06-25T10:00:00'),
$lte: ISODate('2019-06-25T11:00:00')
}
Araik
это я понимаю, сам запрос работает
Araik
но вытаскивает не все документы
Dmitriy
традиционно, что в $end и $start переменных? дайте var_dump
Araik
object(MongoDB\BSON\UTCDateTime)#6 (1) { ["milliseconds"]=> string(13) "1584478800000" }
Araik
это переменная $start
Araik
object(MongoDB\BSON\UTCDateTime)#5 (1) { ["milliseconds"]=> string(13) "1584565200000" }
Araik
а это $end
Araik
перевожу с помощью онлайн конвертера из UNIX Timestamp в нормальную дату, для $start это
GMT: Tue, 17 Mar 2020 21:00:00 GMT
Ваша временная зона: 18.03.2020, 00:00:00
Для $end:
GMT: Wed, 18 Mar 2020 21:00:00 GMT
Ваша временная зона: 19.03.2020, 00:00:00
Araik
Документ который не удается вытащить :
2020-03-18T05:30:10.000+00:00
Dmitriy
ок, давайте тогда по другому посмотрим. у вас есть админские права к базе?
Araik
При этом, если делать запрос в Mongo Atlas, то все ок
{'updated_at':{'$gte':ISODate('2020-03-18')}, 'status':'solved'}
Araik
да
Araik
мне кажется какая-то со временем непосредственно проблема может?
Araik
щас покажу как конвертирую время для запроса
Araik
$filter['start'] = strtotime($_GET['start'])*1000;