Fråga efter data med hjälp av Azure Cosmos DB för MongoDB

GÄLLER FÖR: Mongodb

Important

Vill du migrera ett befintligt MongoDB-program eller använda MQL-funktioner (MongoDB Query Language) ? Överväg Azure DocumentDB.

Letar du efter en databaslösning för storskaliga scenarier med ett serviceavtal på 99,999% tillgänglighetsnivå (SLA), snabb autoskalning och automatisk redundans i flera regioner? Överväg Azure Cosmos DB för NoSQL.

Azure Cosmos DB for MongoDB stöder MongoDB-frågor.

Den här artikeln beskriver följande uppgifter:

  • Köra frågor mot data som lagras i din Azure Cosmos DB-databas med MongoDB-gränssnittet

Du kan komma igång med hjälp av exemplen i den här artikeln.

Exempeldokument

Frågorna i den här artikeln använder följande exempeldokument.

{
  "id": "WakefieldFamily",
  "parents": [
      { "familyName": "Wakefield", "givenName": "Robin" },
      { "familyName": "Miller", "givenName": "Ben" }
  ],
  "children": [
      {
        "familyName": "Merriam", 
        "givenName": "Jesse", 
        "gender": "female", "grade": 1,
        "pets": [
            { "givenName": "Goofy" },
            { "givenName": "Shadow" }
        ]
      },
      { 
        "familyName": "Miller", 
         "givenName": "Lisa", 
         "gender": "female", 
         "grade": 8 }
  ],
  "address": { "state": "NY", "county": "Manhattan", "city": "NY" },
  "creationDate": 1431620462,
  "isRegistered": false
}

Exempelfråga 1

Med tanke på exempelfamiljedokumentet returnerar följande fråga de dokument där fältet id matchar WakefieldFamily.

Fråga:

db.families.find({ id: "WakefieldFamily"})

Resultat:

{
    "_id": "ObjectId(\"58f65e1198f3a12c7090e68c\")",
    "id": "WakefieldFamily",
    "parents": [
      {
        "familyName": "Wakefield",
        "givenName": "Robin"
      },
      {
        "familyName": "Miller",
        "givenName": "Ben"
      }
    ],
    "children": [
      {
        "familyName": "Merriam",
        "givenName": "Jesse",
        "gender": "female",
        "grade": 1,
        "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
        ]
      },
      {
        "familyName": "Miller",
        "givenName": "Lisa",
        "gender": "female",
        "grade": 8
      }
    ],
    "address": {
      "state": "NY",
      "county": "Manhattan",
      "city": "NY"
    },
    "creationDate": 1431620462,
    "isRegistered": false
}

Exempelfråga 2

Nästa fråga returnerar alla barn i familjen.

Fråga:

db.families.find( { id: "WakefieldFamily" }, { children: true } )

Resultat:

{
    "_id": "ObjectId("58f65e1198f3a12c7090e68c")",
    "children": [
      {
        "familyName": "Merriam",
        "givenName": "Jesse",
        "gender": "female",
        "grade": 1,
        "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
        ]
      },
      {
        "familyName": "Miller",
        "givenName": "Lisa",
        "gender": "female",
        "grade": 8
      }
    ]
}

Exempelfråga 3

Nästa fråga returnerar alla familjer som är registrerade.

Fråga:

db.families.find( { "isRegistered" : true })

Resultat:

Inget dokument returneras.

Exempelfråga 4

Nästa fråga returnerar alla familjer som inte är registrerade.

Fråga:

db.families.find( { "isRegistered" : false })

Resultat:

{
    "_id": ObjectId("58f65e1198f3a12c7090e68c"),
    "id": "WakefieldFamily",
    "parents": [{
        "familyName": "Wakefield",
        "givenName": "Robin"
    }, {
        "familyName": "Miller",
        "givenName": "Ben"
    }],
    "children": [{
        "familyName": "Merriam",
        "givenName": "Jesse",
        "gender": "female",
        "grade": 1,
        "pets": [{
            "givenName": "Goofy"
        }, {
            "givenName": "Shadow"
        }]
    }, {
        "familyName": "Miller",
        "givenName": "Lisa",
        "gender": "female",
        "grade": 8
    }],
    "address": {
        "state": "NY",
        "county": "Manhattan",
        "city": "NY"
    },
    "creationDate": 1431620462,
    "isRegistered": false
}

Exempelfråga 5

Nästa fråga returnerar alla familjer som inte är registrerade och tillståndet är NY.

Fråga:

db.families.find( { "isRegistered" : false, "address.state" : "NY" })

Resultat:

{
    "_id": ObjectId("58f65e1198f3a12c7090e68c"),
    "id": "WakefieldFamily",
    "parents": [{
        "familyName": "Wakefield",
        "givenName": "Robin"
    }, {
        "familyName": "Miller",
        "givenName": "Ben"
    }],
    "children": [{
        "familyName": "Merriam",
        "givenName": "Jesse",
        "gender": "female",
        "grade": 1,
        "pets": [{
            "givenName": "Goofy"
        }, {
            "givenName": "Shadow"
        }]
    }, {
        "familyName": "Miller",
        "givenName": "Lisa",
        "gender": "female",
        "grade": 8
    }],
    "address": {
        "state": "NY",
        "county": "Manhattan",
        "city": "NY"
    },
    "creationDate": 1431620462,
    "isRegistered": false
}

Exempelfråga 6

Nästa sökfråga returnerar alla familjer där barnens betyg är 8.

Fråga:

db.families.find( { children : { $elemMatch: { grade : 8 }} } )

Resultat:

{
    "_id": ObjectId("58f65e1198f3a12c7090e68c"),
    "id": "WakefieldFamily",
    "parents": [{
        "familyName": "Wakefield",
        "givenName": "Robin"
    }, {
        "familyName": "Miller",
        "givenName": "Ben"
    }],
    "children": [{
        "familyName": "Merriam",
        "givenName": "Jesse",
        "gender": "female",
        "grade": 1,
        "pets": [{
            "givenName": "Goofy"
        }, {
            "givenName": "Shadow"
        }]
    }, {
        "familyName": "Miller",
        "givenName": "Lisa",
        "gender": "female",
        "grade": 8
    }],
    "address": {
        "state": "NY",
        "county": "Manhattan",
        "city": "NY"
    },
    "creationDate": 1431620462,
    "isRegistered": false
}

Exempelfråga 7

Nästa databasfråga returnerar alla familjer där barnmatrisens storlek är 3.

Fråga:

db.Family.find( {children: { $size:3} } )

Resultat:

Inga resultat returneras eftersom det inte finns några familjer med fler än två barn. Endast när parametervärdet är 2 lyckas den här frågan och returnerar det fullständiga dokumentet.

Nästa steg

I den här självstudien har du gjort följande:

  • Lärde dig hur man gör frågor med hjälp av Azure Cosmos DB för MongoDB

Du kan nu fortsätta till nästa självstudie för att lära dig hur du distribuerar dina data globalt.