Ok Anda bisa melakukannya dengan dua cara :
Seperti yang Anda lakukan ini :
uid = Objectid("5d518caed55bc00001d235c1")
disuid = ['5d76b2c847c8d3000184a090', '5d7abb7a97a90b0001326010']
Anda perlu mengonversi daftar string Anda menjadi daftar ObjectId menggunakan kode python :
from bson.objectid import ObjectId
disuid = ['5d76b2c847c8d3000184a090', '5d7abb7a97a90b0001326010']
my_list = []
for i in disuid:
my_list.append(ObjectId(i))
Ini akan terlihat seperti ini :[ObjectId('5d76b2c847c8d3000184a090'),ObjectId('5d7abb7a97a90b0001326010')]
kemudian dengan menggunakan daftar baru my_list
, Anda dapat melakukan query seperti ini :
user_posts.aggregate([{"$match" : { "$or" : [{ "userid" : uid }, { "userid" : { "$in" : my_list }}]}}])
Atau dengan cara lain yang tidak saya sukai, karena mengonversi hanya beberapa kode lebih mudah dibandingkan dengan n num nilai untuk userid
bidang atas semua dokumen dalam DB, tetapi untuk berjaga-jaga jika Anda ingin itu dilakukan menggunakan kueri DB :
user_posts.aggregate([{$addFields : {userStrings : {$toString: '$userid'}}},{"$match" : { "$or" : [{ "userid" : uid }, { "userStrings" : { "$in" : disuid }}]}}])
Catatan : Jika Anda tidak memiliki paket bson, maka Anda perlu menginstalnya dengan melakukan sesuatu seperti pip install bson