Roman
Там есть поиск по regexp
Alexander
В MongoDB-то да, но как его использовать средствами Golang?
Roman
https://godoc.org/go.mongodb.org/mongo-driver/bson/primitive#Regex
Alexander
Да, я понял, что нужно юзать primitive, но как конкретно, не понял
Alexander
Я нагуглил вот что:
https://stackoverflow.com/questions/55740288/how-to-write-mongodb-query-for-regex-in-golang-using-bson
Alexander
но смысл не понимаю
Roman
https://github.com/mongodb/mongo-go-driver/blob/51421e413403fe3c9b0097147841f752421133e4/examples/documentation_examples/examples.go#L293
Roman
Вот официальный пример
Alexander
ничего не понятно в нём
Denis
NCR
Товарищи, можно ли одним запросом сделать $in и $regex? Нужно найти подстроку в коллекции со строками, но при этом есть несколько искомых подстрок
Мирас
Max
Приветствую! Подскажите, есть ли какие-то причины не использовать в названии БД дефис, например my-project?
Почему в названиях коллекций плохо использоавть дефис, это ясно. А есть ли какие-то проблемы в дефисе и названии БД?
NCR
$in ожидает массив
NCR
а массив не ожидает $regex
Мирас
{$in:[], $regex: // } нет? Или я неправпльно понял вопрос?
Eldor
Eldor
Как могу достать все links которы заканчивается с version 1.2.2 или содержит
Eldor
?
Eldor
Зарание спасибо
N
Здравствуйте,
есть вот такой запрос:
err = collection.FindOne(context.TODO(), bson.D{{"tokens", bson.M{"$elemMatch": bson.D{{"accessToken", "123"}}}}}).Decode(&result)
как использовать projection? Нужно, чтобы возращалась айдишка документа и тот его объект из его массива у которого поле accessToken совпадает?
NCR
{'wordPage.links': {$regex: 'version=1.2.2'}}
Roman
Taras
Всем привет как подключить монгодб к нестжс? Я пробую через команду sudo mongod кидает ошибку что нету папки где то дата дб
Taras
Все я оказывается подключил просто не то делал
N
N
result, err := coll.UpdateOne(
context.Background(),
bson.D{
{"item", "paper"},
},
bson.D{
{"$set", bson.D{
{"size.uom", "cm"},
{"status", "P"},
}},
},
) Мне нужно что-то похожее на это, но только обновлять только если соответстует определенному условию
Nick
result, err := coll.UpdateOne(
context.Background(),
bson.D{
{"item", "paper"},
},
bson.D{
{"$set", bson.D{
{"size.uom", "cm"},
{"status", "P"},
}},
},
) Мне нужно что-то похожее на это, но только обновлять только если соответстует определенному условию
вам нужен $elemMatch
https://docs.mongodb.com/manual/reference/operator/update/positional/#update-embedded-documents-using-multiple-field-matches
Roman
Вот еще
https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/
Taras
Только я так и не понял почему у меня через sudo mongod не запускалось...
N
N
Гена
всем привет
подскажите, если я включаю профайлер а запросы на чтение идут на секондари, профайлер поймает их?
N
Ilya
привет всем, у меня вопрос про lookup, подскажите в ключ "from" как правильно положить название коллекции?
у меня есть модель mongoose.model('Task_Priority', taskPrioritySchema);
она в сервисе mlab выглядит как task_priorities
когда указываю ее в lookup
{
$lookup: {
from: 'task_priorities',
localField: 'priority',
foreignField: '_id',
as: 'priorityDetails',
},
},
то прилетает в priorityDetails пустой массив
Roman
А у вас точно поле priority содержит айди?
Ilya
[{
"_id": {
"$oid": "5f15939e201fc30c7864efd5"
},
"label": "124124124214",
"color": "#bd10e0",
"description": "",
"createdAt": {
"$date": "2020-07-20T12:52:46.555Z"
},
"updatedAt": {
"$date": "2020-07-20T12:52:46.555Z"
},
"__v": 0
}]
Ilya
вот такая коллекция
Roman
Это коллекция task_priorities?
Ilya
да, именно так
Roman
А как выглядит коллекция, к которой вы делаете lookup?
Ilya
[{
"_id": {
"$oid": "5f1594dfefafbc11884b0be5"
},
"users": [],
"name": "124124214",
"shortName": "MGFOMS-11",
"description": "124124124",
"priority": "5f1594a7efafbc11884b0be3",
"type": "5f05c503269de13b7cdfb26c",
"project": {
"$oid": "5f05c45e1f878c2b6475304c"
},
"state": {
"$oid": "5f05c4f1269de13b7cdfb26a"
},
"__v": 0
}]
Ilya
[{
"_id": {
"$oid": "5f1594a7efafbc11884b0be3"
},
"label": "124124214",
"color": "#bd10e0",
"description": "",
"createdAt": {
"$date": "2020-07-20T12:57:11.573Z"
},
"updatedAt": {
"$date": "2020-07-20T12:57:11.573Z"
},
"__v": 0
}]
Ilya
первая коллекция это та к которой я делаю запрос
Ilya
const response = await Task.aggregate([
{
$match: {
project: mongoose.Types.ObjectId(projectId),
},
},
{
$lookup: {
from: 'task_priorities',
localField: 'priority',
foreignField: '_id',
as: 'priorityDetails',
},
},
]);
Ilya
а вот запрос
Roman
Похоже на то, что проблема в том, что у вас priority - это строка, а не objectID
Ilya
да, спасибо, вы правы
Ilya
у меня правда еще 1 вопрос
Ilya
как можно в поле указать что либо там ObjectId либо ничего?
no
а реально ли получить количество результатов из aggregate, не получая все документы?
Roman
Добавить count?
Roman
https://docs.mongodb.com/manual/reference/operator/aggregation/count/
no
подскажите, почему так медленно выполняется запрос?
в definitions всего 30 000 документов,
P.S. filter = {} (пустой объект)
Yaroslav
Yaroslav
И каково отношение definition к posts (один ко многим, один к одному, многим ко многим)?
no
Yaroslav
Yaroslav
Lookup достаточно затратная операция
no
О, кстати)
no
Спасибо)
Denis
Как изящно отсортировать документы по убыванию кол-ва любых полей в документе
{ z: ‘’, b: ‘’ } будет выше чем
{ a: ‘’ }
Нагуглил $bsonSize, только так? Он только в 4.4
Stanislav
Добрый день.
Стараюсь пройтись по внутреннему списку и там найти подстроку в строке.
db.getCollection('tasks').find({
for(i = 0; i < $messages.size; i = i + 1){
let v = $messages[i]
if($messages[i].body.includes('136805') != false){
}
}
})
Что я не так делаю?(
Nick
Stanislav
Vladimir 🧙♂️
Всем привет!
Есть проблема с коннектом Intellij Idea с Document DB через SSH tunnel. Есть ли тут кто-нибудь, кто занимался таким?
Ошибка примерно следующая:
com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=localhost:64562, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving message}, caused by {java.net.SocketTimeoutException: Read timed out}}].
Konstantin
хех, делаю дамп 2 лямов записей монги.
можно ли как то ускорить этот процесс? или делать бэкапы по другому??
Андрей
Konstantin
Konstantin
это sftp проводник
Андрей
Так а что ускорить нужно? Процесс выполнения бэкапа с тем, что изображено, никак не связан как бы.
Konstantin
да нужно ускорить процесс
Андрей
Процесс чего - копирования файлов по сети?
Konstantin
Konstantin
чтобы оно было быстро
Андрей
Ну быстрое железо и каналы вам в помощь. Я не могу понять, если честно, в чем проблема. Информации, кроме окна winscp, которое к процессу выполнения бэкапа никак не относится, ноль.
Vladimir
но не очень переносимо