Dmitry
Как вариант, можно написать промежуточную прослойку, и в ней описать поведение
Yury
yopp
Pavel
yopp
А какой у вас средний размер записи? У вас реплика? Какой write concern вы используете?
Pavel
Dmitry
Yury
Yury
нашел тип, который удаляет индекс-сигнатуру из типа)
Yury
Nick
Alexander
Nick
Muzaffar
здравствуйте ребята можете подсказать как правильно группировать по orgName если у меня структура
User : {
id:
Positions : [
{ orgName, orgType }
]
}
Muzaffar
такой запрос не совсем является правильным
db.user.aggregate([
{
$group : {
_id : { orgName : "$Positions.orgName"}
}
}
]);
Nick
Nick
Muzaffar
там массив организаций
Nick
просто в текущем запросе останется тоьлко первая организация
Muzaffar
мне нужно вывести всех организаций которые есть у меня в базе
ИНН организации + наименование
Nick
операция разовая?
Muzaffar
Muzaffar
Nick
важно что не часть функционала, который например на главной странице сайта чтото рисует)
Nick
тогда вам надо чтото вроде
$unwind: {},
$group:{
_id: {
inn: "$Pos.orgInn",
name: "$Pos.orgName"
},
}
Muzaffar
а что если оргИнн одинаковый но нейм разный?
Nick
две записи будет
Muzaffar
т.е. будет считать что РФ и Российская Федерация это разные государства?
Nick
потом можете уже сделать например еще группировку по _id.inn и через $sum счетчик запилить и дальше отфильтровать те й которых больше 1 наименования например
Nick
Muzaffar
если это текстом - то да
если правильно понимаю то
db.user.aggregate([
{$unwind: "$Positions"},
{
$group:{
_id: {
inn: "$Positions.org_tin",
name: "$Positions.org"
},
},
},
{$sort:{_id:1}},
{
$group: {
_id:"$_id.inn", name:{$first:"$_id.name"}
}
}
])
Nick
если правильно понимаю то
db.user.aggregate([
{$unwind: "$Positions"},
{
$group:{
_id: {
inn: "$Positions.org_tin",
name: "$Positions.org"
},
},
},
{$sort:{_id:1}},
{
$group: {
_id:"$_id.inn", name:{$first:"$_id.name"}
}
}
])
если хочется только одно имя, то можно сразу
db.user.aggregate([
{$unwind: "$Positions"},
{
$group:{
_id: "$Positions.org_tin",
name:{$first:"$Positions.org"}
},
}
])
Nick
и сортировка перед группировкой в целом бессмысленна
Muzaffar
тин + нейм нужен
при этом при одинаковом тин могат быть разые неймы как с примером РФ )
Muzaffar
какой то сложный этот НоСкул
Nick
в скул это такой же групбай над вложенным запросом с еще одним групбайем
Muzaffar
это просто обычный скул намного удобнее для меня
Muzaffar
кстати @yatoba спасибо за помощь
Nick
Muzaffar
не мой проект ребята используют и у них возник вопрос решил тоже попробовать что там )
Роман
ObjectID может выдать всего лишь 17 млн уникальных строк?
yopp
79228162514264337593543950336 если точно :)
yopp
2⁹⁶ записей
yopp
Если брать стандарт то внутри одной секунды для каждого процесса возможно 16 777 216 записей, да.
Т.е если вы в секунду на одном сервере в одном потоке генерируете ~16 млн записей, то у вас вероятно закончится счетчик.
Но вероятность этого крайне низкая, так как 17 млн записей в секунду не так уж и просто сгенерировать :)
Роман
Роман
Ну да, там было написано at one moment...
Роман
Был крайне удивлён как в 24 символах всего 17 млн помещается
Роман
Интересно, может ли сгенерироваться ключ aaaaaaaaaaaaaaaaaaaaaaaa
Роман
Пока что не вижу закономерности в секунду или по-немногу, в каком потоке, но это наверное нужно лезть прям в глубокую теорию
Александр
Привет всем! Кто-нибудь сталкивался с такой ошибкой при запуске через brew? (mac m1)
Александр
Произошло после того, как в mongod.conf добавил security:
Александр
я так понимаю, не у кого не возникало?
Евгений
всем привет, можете объяснить что делает эта строчка кода, как понять что в Populate передается результат find? что будет в этом случае?
Yury
Подскажите, пожалуйста, в mongoose метод updateMany синхронный или асинхронный?
Роман
ctrl + click по нему и можно посмотреть какой он и что возвращает
Роман
Если есть слово async соответственно асинхронный
kis kis
Подскажите, у меня есть такая схема
import { User } from './../../user/schemes/user.schema';
import { Schema, Prop, SchemaFactory } from "@nestjs/mongoose";
import mongoose, { Document } from "mongoose";
@Schema()
export class Course {
@Prop()
title: string;
@Prop()
description: string;
@Prop()
subject: string
@Prop()
yearsOfStudy: number;
@Prop()
updatedAt: Date;
@Prop()
createdAt: Date;
@Prop()
imgSrc: string;
@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'User' })
courseAuthor: User;
}
Мне нужно произвести поиск по полю courseAuthor, а именно, по полю fio в пользователя этого курса.
Я делал вот такой поиск:
const queryNotFields: any = {
$or: [
{ title: { $regex: dto.q, $options: 'i' } },
{ description: { $regex: dto.q, $options: 'i' } },
{ subject: { $regex: dto.q, $options: 'i' } },
{ 'courseAuthor.fio': { $regex: dto.q, $options: 'i' } },
]
};
return this.courseModel.find(query).exec();
Работает поиск по всем полям, кроме courseAuthor.fio
Nick
Подскажите, у меня есть такая схема
import { User } from './../../user/schemes/user.schema';
import { Schema, Prop, SchemaFactory } from "@nestjs/mongoose";
import mongoose, { Document } from "mongoose";
@Schema()
export class Course {
@Prop()
title: string;
@Prop()
description: string;
@Prop()
subject: string
@Prop()
yearsOfStudy: number;
@Prop()
updatedAt: Date;
@Prop()
createdAt: Date;
@Prop()
imgSrc: string;
@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'User' })
courseAuthor: User;
}
Мне нужно произвести поиск по полю courseAuthor, а именно, по полю fio в пользователя этого курса.
Я делал вот такой поиск:
const queryNotFields: any = {
$or: [
{ title: { $regex: dto.q, $options: 'i' } },
{ description: { $regex: dto.q, $options: 'i' } },
{ subject: { $regex: dto.q, $options: 'i' } },
{ 'courseAuthor.fio': { $regex: dto.q, $options: 'i' } },
]
};
return this.courseModel.find(query).exec();
Работает поиск по всем полям, кроме courseAuthor.fio
авторы хранятся в отдельной коллекции или это вложенный документ?
Pavel
что то документации поплохело, а зеркала уже отключили?
kis kis
Nick
В отдельной коллекции
Тогда просто так не получится, нужно вытягивать авторов через $lookup и там доп фильтрацию делать, либо вытаскивать на уровень кода через populate() монгусовский и фильтрацию там делать или прям коде
kis kis
"
How i build google signup api with node js and mongo db .. is any one know? 😔
.
Всем привет что делать если mongodb не подключается?
Роман
норм промисы использовать для обработки всяких операций типа findandupdate?
Роман
а то я массив создаю, код синхронно запускается и он пустой
Роман
нужно подождать пока данные с бд высосутся
Роман
Роман
А нет, не на этой.. на этой https://mongoosejs.com/docs/async-await.html
Роман
Но благодарю
Alexandrr
слишком мало конкретики.
что, зачем, для чего и почему
начните с нормального описания вопроса
Роман
То есть это нормальная практика?
Роман
Сейчас