sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:Hvordan forenes alle resultater fra samme samling?

Du kan bruge $facet aggregering her.

db.test.aggregate([
  { "$facet": {
    "first": [
      { "$match": { "category_id": 1 }},
      { "$sort": { "createAt": -1 }},
      { "$limit": 5 }
    ],
    "second": [
      { "$match": { "category_id": 2 }},
      { "$sort": { "createAt": -1 }},
      { "$limit": 5 }
    ]
  }},
  { "$project": { "data": { "$concatArrays": ["$first", "$second"] }}},
  { "$unwind": "$data" },
  { "$replaceRoot": { "newRoot": "$data" }}
])

Opdater

Bruger simpelt javascript

const test1 = await db.test.find({ category_id: 1 }).sort({ createAt: -1 }).limit(5)

const test2 = await db.test.find({ category_id: 1 }).sort({ createAt: -1 }).limit(5)

const test = test1.concat(test2)

console.log(test)



  1. Tilføj data i dokumenter i Mongo DB ved hjælp af PHP

  2. MongoDB:Får Client Cursor::yield kan ikke låse op b/c af rekursiv låseadvarsel, når du bruger findAndModify i to procesforekomster

  3. Kan ikke slette fra mongodb-samlingens kantede MEAN-stack

  4. Udskrivning af en MongoDB-dato fra PHP