Lanjutan dari ini.

Sekarang ini berfungsi dengan baik, saya mengalami masalah lain. Saya sekarang mencoba untuk mendapatkan nilai dari bidang dari dokumen tertentu [yang berbagi id yang sama dengan pengguna yang menjalankan perintah], namun ketika perintah dijalankan A) menarik dari dokumen pertama, bukan yang berbagi id dengan pengguna, dan B) hanya menampilkan sesuatu seperti ini - {'_id': 012345678987654321, 'inv': {'inv1': 'N/A'}}.

Kode saya:

if conn.mydb.mycol.count_documents({ '_id': userID }):
    inventory1 = conn.mydb.mycol.find_one({}, {'inv': {'inv1':1}, '_id' : userID})
    await ctx.send(inventory1)

Bagaimana saya bisa melakukan A) menariknya dari dokumen yang benar dan B) mengatur nilai inv1 sebagai variabel untuk kemudian menjadi output? Bantuan apa pun sekali lagi dihargai.

0
Soulless Maniac 27 Mei 2021, 16:12

1 menjawab

Jawaban Terbaik

Parameter pertama untuk find_one() adalah filter; paremeter kedua adalah proyeksi (bidang mana yang dikembalikan). Jadi awal yang baik adalah:

inventory1 = conn.mydb.mycol.find_one({'_id' : userID}, {'inv': 1})
0
Belly Buster 27 Mei 2021, 16:46