The examples in this section query a document store and retrieve specific fields from the documents.
The following example shows how to retrieve the _id and
address.zipCode fields from all documents in a store using the Query.select method.
/** * Copyright (c) 2017 MapR, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ package com.mapr.ojai.examples; import org.ojai.Document; import org.ojai.DocumentStream; import org.ojai.store.Connection; import org.ojai.store.DocumentStore; import org.ojai.store.DriverManager; import org.ojai.store.Query; public class OJAI_006_FindQueryWithSelect { public static void main(final String[] args) { System.out.println("==== Start Application ==="); // Create an OJAI connection to MapR cluster final Connection connection = DriverManager.getConnection("ojai:mapr:"); // Get an instance of OJAI DocumentStore final DocumentStore store = connection.getStore("/demo_table"); // Build an OJAI query final Query query = connection.newQuery() .select("_id", "address.zipCode") .build(); // fetch all OJAI Documents from this store final DocumentStream stream = store.find(query); for (final Document userDocument : stream) { // Print the OJAI Document System.out.println(userDocument.asJsonString()); } // Close this instance of OJAI DocumentStore store.close(); // close the OJAI connection and release any resources held by the connection connection.close(); System.out.println("==== End Application ==="); } }
The following example shows how to retrieve the _id and
address.zipCode fields from all documents in a store using an OJAI
query.
/*
* Copyright (c) 2018 MapR, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const { ConnectionManager } = require('node-maprdb');
const connectionString = 'localhost:5678?' +
'auth=basic;' +
'user=mapr;' +
'password=mapr;' +
'ssl=true;' +
'sslCA=/opt/mapr/conf/ssl_truststore.pem;' +
'sslTargetNameOverride=node1.mapr.com';
let connection;
// Create a connection to data access server
ConnectionManager.getConnection(connectionString)
.then((conn) => {
connection = conn;
// Get a store
return connection.getStore('/demo_table');
})
.then((store) => {
// Create an OJAI query
const query = {"$select": ["_id", "address.zipCode"]};
// fetch OJAI Documents by query
return store.find(query);
})
.then((queryResult) => {
queryResult.on('data', (document) => {
// Print OJAI Documents from document stream
console.log(document);
});
queryResult.on('end', () => {
// close the OJAI connection
connection.close();
});
});
The following example shows how to retrieve the _id and
address.zipCode fields from all documents in a store using an OJAI
query.
from mapr.ojai.storage.ConnectionFactory import ConnectionFactory # Create a connection to data access server connection_str = "localhost:5678?auth=basic;user=mapr;password=mapr;" \ "ssl=true;" \ "sslCA=/opt/mapr/conf/ssl_truststore.pem;" \ "sslTargetNameOverride=node1.mapr.com" connection = ConnectionFactory.get_connection(connection_str=connection_str) # Get a store and assign it as a DocumentStore object store = connection.get_store('/demo_table') # Create an OJAI query query = {"$select": ["_id", "address.zipCode"]} # options for find request options = { 'ojai.mapr.query.result-as-document': True } # fetch OJAI Documents by query query_result = store.find(query, options=options) # Print OJAI Documents from document stream for doc in query_result: print(doc.as_dictionary()) # close the OJAI connection connection.close()
The following two dbshell commands are equivalent to the code examples. See dbshell find or findbyid for more details about the syntax dbshell provides.
# mapr dbshell
maprdb root:> find /demo_table --query {"$select":["_id","address.zipcode"]}
maprdb root:> find /demo_table --fields _id,address.zipcode The following example shows how to retrieve the _id and
address.zipCode fields from all documents in a store using an OJAI
query.
using System;
using MapRDB.Driver;
using MapRDB.Driver.Ojai;
public class FindQueryWithSelect
{
public async void FindQueryWithSelect()
{
// Create a connection to data access server
var connectionStr = $"localhost:5678?auth=basic;" +
$"user=mapr;" +
$"password=mapr;" +
$"ssl=true;" +
$"sslCA=/opt/mapr/conf/ssl_truststore.pem;" +
$"sslTargetNameOverride=node1.mapr.com";
var connection = ConnectionFactory.CreateConnection(connectionStr);
// Get a store and assign it as a DocumentStore object
var store = connection.GetStore("/demo_table");
//Create an OJAI query
var query = connection.NewQuery().Select("_id", "address.zipCode").Build();
// Options for find request
var options = new QueryOptions(1000, true);
// Fetch OJAI Documents by query
var queryResult = store.Find(query, options);
var documentStream = await queryResult.GetDocumentAsyncStream().GetAllDocuments();
// Print OJAI Documents from document stream
foreach (var document in documentStream)
{
Console.WriteLine(document.ToDictionary());
}
// Close the OJAI connection
connection.Close();
}
}
The following example shows how to retrieve the _id and
address.zipCode fields from all documents in a store using an OJAI
query.
package main import ( "fmt" client "github.com/mapr/private-maprdb-go-client" ) func main() { // Create connection string connectionString := "192.168.33.11:5678?" + "auth=basic;" + "user=mapr;" + "password=mapr;" + "ssl=true;" + "sslCA=/opt/mapr/conf/ssl_truststore.pem;" + "sslTargetNameOverride=node1.cluster.com" storeName := "/demo_table" // Create a connection to DAG connection, err := client.MakeConnection(connectionString) if err != nil { panic(err) } // Get a store and assign it as a DocumentStore struct store, err := connection.GetStore(storeName) if err != nil { panic(err) } // Options for find request options := &client.FindOptions{ResultAsDocument: true} // Create an OJAI query query := map[string]interface{}{"$select": []interface{}{"_id", "address.zipCode"}} // Fetch all OJAI Documents from table findResult, err := store.FindQueryMap(query, options) // Print OJAI Documents from document stream for _, doc := range findResult.DocumentList() { fmt.Println(doc) } // Close connection connection.Close() }