Andrey
const client = await (new MongoClient(process.env.MONGO, { useNewUrlParser: true }).connect());
Andrey
web: environment: - MONGO=mongodb://login:password@host:port/
Andrey
а стоп, это я без монгуса, с монгусом вот так mongoose.createConnection('mongodb://login:password@host:port/mydb?authSource=admin', { useNewUrlParser: true});
new
у меня так же, но я еще переменные через файл передаю, это у меня файл keys.js if (process.env.NODE_ENV === 'production') { module.export = require('./keys.prod'); } else { module.export = require('./keys.dev'); } я запускаю npm run dev и вот файл keys.dev.js module.exports = { mongoURI: 'mongodb://#:#@ds151282.mlab.com:51282/fs', mongoConfig: { useCreateIndex: true, useNewUrlParser: true }, jwt: 'dev-jwt' };
new
это все там есть
Andrey
module.export по-моему нужно s на конце
new
всеравно)
Andrey
а перед самим вызовом что выводит console.log(keys)
Мебель на заказ в Минске
/keys
Andrey
и заодно console.log(process.env.NODE_ENV)
Andrey
тогда не в могузе проблема, а в том как ты экспортируешь/импортируешь модули
new
в том проблема, что я конфигурацию сравнивала с курсом, который смотрела по этому проекту и там все совпадает
new
если там работает, то и у меня тоже должно ведь
Andrey
может окружение по-разному настроено
Andrey
убери все условные операторы, захардкодь значения и пошагово смотри где ошибка
Andrey
http://2ality.com/2014/09/es6-modules-final.html
Eugene
если там работает, то и у меня тоже должно ведь
А у курса есть proof-of-work? Может оно тоже багованное.
new
А у курса есть proof-of-work? Может оно тоже багованное.
проблема исправлена, спасибо там без магии не обошлось
new
а я сама не понимаю, мне в личку написал парень с node.js группы, он запустил у себя проект, скопировал мне файл свой, keys.js я вставила, редактор даже не предложил сохранить файл, но я все же это сделала и все запустилось
new
колдун
CherryTea
Вот js сом пройдись по объекту user и обработай favourites
Ты чего сам с собой тут разговариваешь
Anonymous
🙄
Nikita Aplin
Привет, в чем может быть проблема? Mongodb Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters var ObjectId = require('mongodb').ObjectId; обжектId подключен
Андрей
Аможно ли из монги достать часть документа?
Андрей
Или надо забирать весь?
Михаил
Или надо забирать весь?
db.collection_name.find( { _id: "1" }, { field1: 1, field2: 1 } )
Андрей
А если надо глубже в документе
Михаил
А если надо глубже в документе
db.collection_name.find( { _id: "1" }, { 'field1.field2.field3': 1} )
Михаил
Но вложенность останется на том же уровне
Андрей
Тоесть данные будут плоскими
Михаил
Тоесть данные будут плоскими
Нет, Если было { _id: 1, deep:{ field1: 123, field2: 321, field4: 111, } } То при запросе db.collection_name.find( { _id: "1" }, { 'deep.fied1': 1} ) Вернет { _id: 1, deep:{ field1: 123, } }
Михаил
Если надо чтобы на первом уровне документа лежали поля, это в аггрегации
Андрей
Понял
Андрей
Спасибо
Nikita Aplin
не влияет
Eugene
а если строку просто передать именно в update?
Nikita Aplin
без objectid?
Eugene
да
Nikita Aplin
была другая ошибка, ща чекну
Nikita Aplin
Eugene
вместо json попробуй {$set: json}
Nikita Aplin
Eugene
что-то со строкой у тебя, там не может быть кириллицы?
Nikita Aplin
нет
Eugene
нет
скинь текстом кусок кода что на скрине, у себя гляну
Nikita Aplin
dbo.collection("users").updateOne({_id: "5c91c332a563ff04e20574c1"}, {$set: json}, function(err, result) { if (err) throw err; res.send('{"type": "bad"}') })
Eugene
странно, у меня нормально работает на 3.2 твой код
Nikita Aplin
есть
Eugene
похоже там и валится, я рандомный объект дал со строками, он его жрет нормально
Nikita Aplin
сейчас попробую удалять
Gleb
Здравствуйте, подскажите, могу ли я в данной точке (!!!) обратиться к текущему tags ? : await Answer.updateMany( { $nor: [{ isDeleted: true }] }, { $set: { tags // !!! }} )
Gleb
То есть, мне нужно сделать условно вот такое: await Answer.updateMany( { $nor: [{ isDeleted: true }] }, { $set: { tags: thisItemOldTags.filter(el => el !== id) }} )
Alexander
знает ли кто правильный способ склонировать пачку документов присвоив одному из полей какое-то фиксированное значение, а, например, полю clonedFrom значение старого _id? пример, есть документы, привязанные к одной организации, их надо склонировать, привязав к другой, но оставив маппинг на старые документы. Бегать по курсору и вставлять по одному как-то не красиво.
Gleb
скажите что вам надо сделать в общем
проходиться по всем элементам в коллекции Answer и удалить у них из массива tags айдишник нужный
Vladimir
Джентельмены, db.events.update({}, {$pull: {members: { $elemMatch: { _id: ObjectId("5c5be39dc949a00013739e0b") } } } } ); Это верный запрос? Необходимо удалить элемент массива members в коллекции events
👨🏼‍💻
Хотя лучше findByIdAndUpdate юзай
👨🏼‍💻
db.events.findByIdAndUpdate(id, {$pull: {members: { $elemMatch: { _id: "5c5be39dc949a00013739e0b" } } } })
Vladimir
db.events.findByIdAndUpdate(id, {$pull: {members: { $elemMatch: { _id: "5c5be39dc949a00013739e0b" } } } })
чёт не работает: db.events.find({"_id" : ObjectId("5c5be367c949a00013739def")}); Получаю: { "_id" : ObjectId("5c5be367c949a00013739def"), "banned" : false, "isDone" : true, "excluded" : [ ObjectId("5c5acaca075542001376612d") ], "description" : "Desc", "end" : 0, "membersCount" : 2, "prizes" : [ { "photos" : [ "https://dev-api.checkpot.fun/static/resized_prize_506caf30d26e18939bd2e97061ca8d4babcbccf290bfeecccae503849c313d1c.png" ], "isRandom" : true, "uuid" : "TIJ17jXlJI", "winners" : [ { "isPrizeDelivered" : false, "isNotified" : false, "isWinner" : true, "receipt" : "https://dev-api.checkpot.fun/static/resized_receipt_93be5df34b8f8647b2b02274986676d19c1f920acb8dd801ba09104ecf881929.png", "_id" : ObjectId("5c5be3d9c949a00013739e3c"), "user" : ObjectId("5c5ad190c949a00013739845"), "createdAt" : ISODate("2019-02-07T07:52:57.427Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.434Z") } ], "_id" : ObjectId("5c5be367c949a00013739df2"), "minReceipt" : 1000, "name" : "prize ext 1", "createdAt" : ISODate("2019-02-07T07:51:03.360Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.434Z") }, { "photos" : [ "https://dev-api.checkpot.fun/static/resized_prize_b2b84528adfb02285730fc593dc0cb71d2409b58d217a1999624587b402c4570.png" ], "isRandom" : true, "uuid" : "BONdUaYU2i", "winners" : [ { "isPrizeDelivered" : false, "isNotified" : false, "isWinner" : true, "receipt" : "https://dev-api.checkpot.fun/static/resized_receipt_3561651ccc67cbb8ca71df3231d12ccb6e6e66ac8f3fc80e41b788d1c13f018e.png", "_id" : ObjectId("5c5be39dc949a00013739e0b"), "user" : ObjectId("5c5acaca075542001376612d"), "createdAt" : ISODate("2019-02-07T07:51:57.428Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.435Z") } ], "_id" : ObjectId("5c5be367c949a00013739df1"), "minReceipt" : 1000, "name" : "prize ext 2", "createdAt" : ISODate("2019-02-07T07:51:03.360Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.435Z") }, { "photos" : [ "https://dev-api.checkpot.fun/static/resized_prize_a61c965ca94e3275d5028b3947221358b8da981e56c0d21241fb24214de2faae.png" ], "isRandom" : false, "uuid" : "RwgIkx2Sy2", "winners" : [ ], "_id" : ObjectId("5c5be367c949a00013739df0"), "minReceipt" : 1000, "name" : "prize gar 1", "createdAt" : ISODate("2019-02-07T07:51:03.360Z"), "updatedAt" : ISODate("2019-02-07T07:51:03.360Z") } ], "start" : 0, "totalCost" : 5000, "place" : ObjectId("5c5ace83c949a00013739824"), "digitalId" : 3, "uuid" : "GW2zhpYlvw", "appeals" : [ ], "members" : [ { "isPrizeDelivered" : false, "isWinner" : true, "_id" : ObjectId("5c5be39dc949a00013739e0b"), "user" : ObjectId("5c5acaca075542001376612d"), "receipt" : "https://dev-api.checkpot.fun/static/resized_receipt_3561651ccc67cbb8ca71df3231d12ccb6e6e66ac8f3fc80e41b788d1c13f018e.png", "createdAt" : ISODate("2019-02-07T07:51:57.428Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.435Z") }, { "isPrizeDelivered" : false, "isWinner" : true, "_id" : ObjectId("5c5be3d9c949a00013739e3c"), "user" : ObjectId("5c5ad190c949a00013739845"), "receipt" : "https://dev-api.checkpot.fun/static/resized_receipt_93be5df34b8f8647b2b02274986676d19c1f920acb8dd801ba09104ecf881929.png", "createdAt" : ISODate("2019-02-07T07:52:57.427Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.435Z") } ], "createdAt" : ISODate("2019-02-07T07:51:03.360Z"), "updatedAt" : ISODate("2019-03-20T04:00:04.968Z"), "__v" : 25, "rulesFile" : "/usr/src/app/contract//event/pravila_akcii_GW2zhpYlvw.pdf", "ended" : 1549525977, "checks" : [ ] } Делаю апдейт: > db.events.update({"_id" : ObjectId("5c5be367c949a00013739def")}, {$pull: {$elemMatch: {_id: ObjectId("5c5be39dc949a00013739e0b")}}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
Vladimir
0 изменений
Vladimir
Т.е. чё-то типо отработало, но изменений нет
Vladimir
0 modified
Nick
так вы проверьте, может уже нет там такого ид в массиве
Vladimir
"members" : [ { "isPrizeDelivered" : false, "isWinner" : true, "_id" : ObjectId("5c5be39dc949a00013739e0b")
Vladimir
Есть (((
Gor
Ты пытаешься удалить через апдейт?
Nick
чёт не работает: db.events.find({"_id" : ObjectId("5c5be367c949a00013739def")}); Получаю: { "_id" : ObjectId("5c5be367c949a00013739def"), "banned" : false, "isDone" : true, "excluded" : [ ObjectId("5c5acaca075542001376612d") ], "description" : "Desc", "end" : 0, "membersCount" : 2, "prizes" : [ { "photos" : [ "https://dev-api.checkpot.fun/static/resized_prize_506caf30d26e18939bd2e97061ca8d4babcbccf290bfeecccae503849c313d1c.png" ], "isRandom" : true, "uuid" : "TIJ17jXlJI", "winners" : [ { "isPrizeDelivered" : false, "isNotified" : false, "isWinner" : true, "receipt" : "https://dev-api.checkpot.fun/static/resized_receipt_93be5df34b8f8647b2b02274986676d19c1f920acb8dd801ba09104ecf881929.png", "_id" : ObjectId("5c5be3d9c949a00013739e3c"), "user" : ObjectId("5c5ad190c949a00013739845"), "createdAt" : ISODate("2019-02-07T07:52:57.427Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.434Z") } ], "_id" : ObjectId("5c5be367c949a00013739df2"), "minReceipt" : 1000, "name" : "prize ext 1", "createdAt" : ISODate("2019-02-07T07:51:03.360Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.434Z") }, { "photos" : [ "https://dev-api.checkpot.fun/static/resized_prize_b2b84528adfb02285730fc593dc0cb71d2409b58d217a1999624587b402c4570.png" ], "isRandom" : true, "uuid" : "BONdUaYU2i", "winners" : [ { "isPrizeDelivered" : false, "isNotified" : false, "isWinner" : true, "receipt" : "https://dev-api.checkpot.fun/static/resized_receipt_3561651ccc67cbb8ca71df3231d12ccb6e6e66ac8f3fc80e41b788d1c13f018e.png", "_id" : ObjectId("5c5be39dc949a00013739e0b"), "user" : ObjectId("5c5acaca075542001376612d"), "createdAt" : ISODate("2019-02-07T07:51:57.428Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.435Z") } ], "_id" : ObjectId("5c5be367c949a00013739df1"), "minReceipt" : 1000, "name" : "prize ext 2", "createdAt" : ISODate("2019-02-07T07:51:03.360Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.435Z") }, { "photos" : [ "https://dev-api.checkpot.fun/static/resized_prize_a61c965ca94e3275d5028b3947221358b8da981e56c0d21241fb24214de2faae.png" ], "isRandom" : false, "uuid" : "RwgIkx2Sy2", "winners" : [ ], "_id" : ObjectId("5c5be367c949a00013739df0"), "minReceipt" : 1000, "name" : "prize gar 1", "createdAt" : ISODate("2019-02-07T07:51:03.360Z"), "updatedAt" : ISODate("2019-02-07T07:51:03.360Z") } ], "start" : 0, "totalCost" : 5000, "place" : ObjectId("5c5ace83c949a00013739824"), "digitalId" : 3, "uuid" : "GW2zhpYlvw", "appeals" : [ ], "members" : [ { "isPrizeDelivered" : false, "isWinner" : true, "_id" : ObjectId("5c5be39dc949a00013739e0b"), "user" : ObjectId("5c5acaca075542001376612d"), "receipt" : "https://dev-api.checkpot.fun/static/resized_receipt_3561651ccc67cbb8ca71df3231d12ccb6e6e66ac8f3fc80e41b788d1c13f018e.png", "createdAt" : ISODate("2019-02-07T07:51:57.428Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.435Z") }, { "isPrizeDelivered" : false, "isWinner" : true, "_id" : ObjectId("5c5be3d9c949a00013739e3c"), "user" : ObjectId("5c5ad190c949a00013739845"), "receipt" : "https://dev-api.checkpot.fun/static/resized_receipt_93be5df34b8f8647b2b02274986676d19c1f920acb8dd801ba09104ecf881929.png", "createdAt" : ISODate("2019-02-07T07:52:57.427Z"), "updatedAt" : ISODate("2019-02-07T07:52:57.435Z") } ], "createdAt" : ISODate("2019-02-07T07:51:03.360Z"), "updatedAt" : ISODate("2019-03-20T04:00:04.968Z"), "__v" : 25, "rulesFile" : "/usr/src/app/contract//event/pravila_akcii_GW2zhpYlvw.pdf", "ended" : 1549525977, "checks" : [ ] } Делаю апдейт: > db.events.update({"_id" : ObjectId("5c5be367c949a00013739def")}, {$pull: {$elemMatch: {_id: ObjectId("5c5be39dc949a00013739e0b")}}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
{$pull:{members:{$elemMatch:
Vladimir
Эмм, что не так?
Gor
Ну логика не понятна что ты пытаешься сделать
Nick
members пропущен