MongoDB Note

Condition array field is not empty

db.users.find({ pictures: { $exists: true, $not: {$size: 0} } })
// or
db.users.find({ pictures: { $exists: true, $ne: [] } })

Search like with regex

db.users.find({'name': {'$regex': 'sometext'}})

Update Many

db.listings.updateMany({
    $and: [
        { "created_at": { $lt: ISODate("2021-08-01") }},
        { "checkup.status": "wait" }
    ]
}, { "$set":{ "checkup.status": "pass" }}, { upsert: true })

Remove duplicate documents in mongodb

db.test.aggregate(
    [
        { 
            $group: { 
                _id: "$question",
                count: { $sum: 1 },
                list: { $addToSet: '$_id' },
                round: { $first: "$round" }
            }
        }, 
        { $match: {
            "$and": [
                { "round" : 0 },
                { 'list.1': { $exists: 1 } }
            ]}
        },
        { $sort: {count: -1} }
    ]
).forEach(item => { 
    const list = item.list.slice(1); 
    db.test.deleteMany({ _id: { $in: list }}); 
    print("question:", item._id, "| count:", item.count)
});

ตามที่เอกสารบอกไว้ โปรดใช้ความระมัดระวังอย่างยิ่งกับการ Remove duplicate documents เนื่องจากจะเป็นการลบข้อมูลออกจากฐานข้อมูล สำรองฐานข้อมูลของคุณก่อน เผื่อไว้ในกรณีที่เกิดการผิดพลาด

---