sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man multipel push till kapslad array

Problem:I arrayfilter matchas _id med sträng istället för ObjectId

Följande fråga skulle uppdatera samlingen exakt:

db.companies.update(
    {
        _id: ObjectId("5d7052a3807ab14e286ba5bd")
    }, 
    {
        $push: {
            "companyBases.$[filter1].vehicles": {
                "name": "Truck 1",
                "combustion": 28
            },
            "companyBases.$[filter2].vehicles": {
                "name": "Truck 2",
                "combustion": 28
            }
        }
    }, 
    {
        "arrayFilters": [{
                "filter1._id": ObjectId("5d7052a3807ab14e286ba5b0")
            },
            {
                "filter2._id": ObjectId("5d7052a3807ab14e286ba5af")
            }
        ]
    }
)



  1. Redis `SCAN`:hur bibehåller man en balans mellan nya inkommande nycklar som kan matcha och säkerställa ett slutligt resultat inom rimlig tid?

  2. ClusterControl - Alla funktioners höjdpunkter och förbättringar från 2017

  3. Använd MongoEngine och PyMongo tillsammans

  4. Hur frågar jag efter dokument med _id-fältet i Java mongodb-drivrutinen?