Tech
Batal
KATEGORI
link has been copied
2
KASKUS
51
244
https://www.kaskus.co.id/thread/6044ede7f61b7c0ef57d9fd2/tolong-gan-conditional-saya-di-expressjs-gk-bekerja-dengan-data-dari-mongodb
Halo gan, saya mau tanya gan, sama minta tolong, seperti judul jadi saya ada codingan di ExpressJs, mau ngambil data thread sama users dari MongoDB thread itu buat nyari data thread sesuai dengan threadIdnya (disini dia return cuma 1 data thread), kalau yang thread di dalamnya isi { "_id": "6044d0d8940c3b2494ce135d", "threadId":"A001} kalau yang "users"
Lapor Hansip
07-03-2021 22:14

[Solved]ExpressJs : conditional saya di ExpressJs gk bekerja dengan data dari MongoDB

Halo gan, saya mau tanya gan, sama minta tolong, seperti judul jadi saya ada codingan di ExpressJs, mau ngambil data thread sama users dari MongoDB

thread itu buat nyari data thread sesuai dengan threadIdnya (disini dia return cuma 1 data thread), kalau yang thread di dalamnya isi { "_id": "6044d0d8940c3b2494ce135d", "threadId":"A001}

kalau yang "users", itu buat nyari data user yang markedPostnya sama dengan thread yang dicari itu

markedPost user itu isinya :{"threadId": "6044d0d8940c3b2494ce135d", "threadId": "6044d0e0940c3b2494ce135e"}

Awalnya saya mau ngambil data pakai 

Code:
const thread = await Threads.findOne({threadId})

    const users = await Users.find({"markedPost.threadId":{
        $in:[thread._id]
    }})



Nah abis itu, saya mau pakai map buat ngecode di dalam const "users"
kaya dibawah ini
Code:
 if(users.length > 0){
        await users.map(async user=>{
            const markpost = user.markedPost;
            let index = 0;

            for (let i = 0; i < markpost.length; i++) {
                console.log(markpost[i].threadId)
                console.log(thread._id)
                if(markpost[i].threadId === thread._id){
                    //this if didnt work at all, I dont know why, even when the threadId is the same with thread._id
                    console.log("found ya")
                    index = i;
                    break
                }
                console.log(markpost[i])
            }

            markpost.splice(index,1);

            await Users.findOneAndUpdate({
                userId:user.userId
            },{
                markedPost:[...markpost]
            }) 
           
        })
    }


problemnya, di bagian ifnya itu, dia gk bekerja gan, padahal kalau di console.log dia 
ada yang sama, (ini hasilnya dibawah gan)

markpost[i].threadId: 6044d0e0940c3b2494ce135e
thread._id : 6044d0e0940c3b2494ce135e
{
 
threadId: '6044d0e0940c3b2494ce135e',
 
date: 2021-03-07T13:15:45.713Z
}
markpost[i].threadId: 6044d0d8940c3b2494ce135d
thread._id : 6044d0e0940c3b2494ce135e
{
 
threadId: '6044d0d8940c3b2494ce135d',
 
date: 2021-03-07T13:15:47.967Z
}

Itu caranya gimana ya gan? Apakah bisa tolong bantu gan?

Solved : ternyata salah tipenya pas di conditional, kesalahan saya
Diubah oleh evanbene48
profile-picture
viqririatra memberi reputasi
1
Masuk atau Daftar untuk memberikan balasan
Tolong gan, conditional saya di ExpressJs gk bekerja dengan data dari MongoDB
07-03-2021 23:03
krn gk pernah pake expressjs, ane hanya fokus pada:
//this if didnt work at all, I dont know why, even when ....
mungkin type markpost[i].threadId berbeda dgn thread._id ?
coba pake equal to(==) bukan pake equal value and equal type(===)
profile-picture
evanbene48 memberi reputasi
1 0
1
Lihat 1 balasan
Memuat data ...
1 - 0 dari 1 balasan
icon-hot-thread
Hot Threads
obrolan-hangat-logo
Obrolan Hangat
Copyright © 2021, Kaskus Networks, PT Darta Media Indonesia