sql >> Database >  >> NoSQL >> MongoDB

MongoDb $addFields en $match

Voeg de volgende keer een voorbeeld van uw document toe, zodat mensen uw probleem kunnen reproduceren. Dat gezegd hebbende, ik zie niet waar je probleem zit. Ik heb wat gegevens gemaakt om je usecase te reproduceren. Dus heb ik het volgende document toegevoegd:

{ 
    "_id" : ObjectId("5a0d5d376c9b762a7c035ec4"), 
    "projectName" : "some stack test", 
    "price" : NumberInt(45), 
    "propertyId" : {
        "prefix" : "a", 
        "number" : "7"
    }
}

Daarna heb ik je script uitgevoerd (zonder de sortering) en het werkt prima:

db.yourCollectionName.aggregate([
    {
        $project: {
            "projectName": 1,
            "price": 1,
            "document": '$$ROOT'
        }
    },
    {
        $addFields: {
            "document.id": {
                $concat: ['$document.propertyId.prefix', '$document.propertyId.number']
            }
        }
    },
    {
        $match: {
            $and: [{
                $or: [{
                        "projectName": {
                            $regex: '.*' + "some stack test"
                        }
                    },

                    {
                        "document.id": {
                            $regex: '.*' + "a" + '.*',
                            $options: "7"
                        }
                    }
                ]
            }]

        }
    },
    {
        $replaceRoot: {
            newRoot: "$document"
        }
    }
])

Het feit dat u geen resultaten krijgt, is waarschijnlijk te wijten aan uw verzoekparameters. Trouwens, hoe kan de "projectName" dezelfde zoekparameters hebben als uw "document.id" Komen ze wel overeen? Controleer je matchpijplijn opnieuw:

{"projectName": {$regex: '.*' + req.query.search + '.*', $options: "i"}},       
{'document.id': {$regex: '.*' + req.query.search + '.*', $options: "i"}}



  1. Mongoose findOneAndUpdate en upsert retourneert geen fouten, geen documenten beïnvloed

  2. MongoDB op een Windows 7-machine:er kon geen verbinding worden gemaakt

  3. MongoDBObject wordt niet toegevoegd aan de binnenkant van een rrd foreach-lus casbah scala apache spark

  4. Hoe werkt sorteren in de nieuwe mongodb PECL-extensie?