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

hvordan man sammenligner to felter i et dokument i pipeline aggregering (mongoDB)

Problemet er ikke med sammenligningsoperatøren, det er den type værdi, du sammenligner. Du bør ændre variabeltypen til Numbers. Skift dit match til 1, -1 eller 0 baseret på din sammenligning.

db.bcamp.aggregate(
[
  {$project: {ab: {$cmp: ['$budget','$clickcost']}}},
  {$match: {ab:{$eq:1}}}
]).pretty();

Du kan bruge $expr i 3.6 version.

db.bcamp.aggregate(
[
  {$match: {$expr: {$eq: ["$budget", "$clickcost"]}}}
]).pretty();

Eller

db.bcamp.find(
 {$expr: {$eq: ["$budget", "$clickcost"]}}
).pretty();



  1. documentdb backup ved hjælp af lambda funktion

  2. Mongoose, sorter forespørgsel efter udfyldt felt

  3. hvordan man konfigurerer forskellige ttl for hver redis cache, når man bruger @cacheable i springboot2.0

  4. Sådan skriver du et tomt associativt array ({}) til MongoDB fra PHP