推定所要時間: 5 分
MongoDB Search Community Edition を使用するには、 MongoDB Community 配置に接続する必要があります。MongoDB Community 配置に接続するには、次の方法を使用します。
MongoDB Compass は、MongoDB データ用の GUI です。
MongoDBドライバー。利用可能なすべての言語を確認するには、MongoDBドライバーのドキュメントを参照してください。
➤ [ 言語を選択 ] ドロップダウン メニューを使用して、このページの手順のクライアントを設定します。
前提条件
始める前に、次の前提条件が必要です。
MongoDB Community と MongoDB Search Community
注意
mongodとmongotプロセスの両方がを実行中いることを確認します。接続するには有効なユーザー名とパスワード
レプリカセットでユーザーをまだ作成していない場合は、ターミナルで次のコマンドを実行してユーザーを作成します。
mongoshを使用してレプリカセットに接続します。mongosh 次のコマンドを実行して、
adminデータベースにsearchCoordinatorロールを持つmongotUserユーザーを作成します。MongoDB はmongotUserユーザーを使用してmongotをmongodで認証します。use admin db.createUser( { user: "mongotUser", pwd: passwordPrompt(), roles: [ { role: "searchCoordinator", db: "admin" } ] } ) searchCoordinatorロールを持つユーザーには、readAnyDatabase特権と__mdb_internal_searchデータベースに対する書込み権限があります。重要
__mdb_internal_searchデータベースの内容は変更しないでください。
レプリカセットの接続文字列列には 、すべてのノードが含まれます。 したがって、レプリカセット名と、すべてのレプリカセットメンバーのホスト名またはIPアドレスとポートが必要です。
MongoDB Compass
ターミナル
テキストエディタ
AC#プロジェクト
プロジェクトを初期化するには、プロジェクト ディレクトリで
dotnet new consoleコマンドを実行します。詳細については、 「C# クイック スタート」を参照してください。
ターミナル
テキストエディタ
Goプロジェクト
プロジェクトを初期化するには、
go modコマンドを使用します。詳細については、 「Go クイック スタート」を参照してください。MongoDB Go ドライバー
Goドライバーとドライバーの依存関係をダウンロードしてインストールするには、次のコマンドを実行します。
go get go.mongodb.org/mongo-driver/v2/mongo go get github.com/joho/godotenv
Java開発キット(JDK) バージョン 8 以降
Maven または Gradle を使用してインストールされたドライバーの依存関係
IntelliJ IDEA などの統合開発環境(IDE)の使用をお勧めします。または Eclipse IDE 依存関係を設定します。
プロジェクトをビルドして実行するように Maven または Gradle を構成するには、 「依存関係として MongoDB を追加する」を参照してください。
ターミナル
テキストエディタ
ご使用のオペレーティング システム用の最新バージョンのPythonをダウンロードするには、Pythonダウンロード ページ を参照してください。
ピップパッケージインストーラー
Python 2.7.9 およびPython 3.4 以降、https://python.org からダウンロードしたパッケージには
pipが含まれます。pipを手動でインストールするには、pip インストール ページ を参照してください。このパッケージにはPython.
レプリカセットへの接続
レプリカセットの接続文字列を使用して、優先クライアントでレプリカセットに接続します。mongot と mongod を正しく構成したことを確認するには、検索インデックスを取得するコマンドを実行します。
検索インスタンスへの接続を確認します。
確認するには、次の手順を実行します。
moviesという名前のコレクションにドキュメントを追加します。db.movies.insertOne({"title": "Back to the Future"}) { acknowledged: true, insertedId: ObjectId('67e42132a1cd6f443d5337b1') } moviesコレクションのすべての検索インデックスを取得します。db.runCommand({"listSearchIndexes": "movies"}); { cursor: { id: 0, ns: 'test.movies', firstBatch: [] }, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1743003975, i: 1 }), signature: { hash: Binary.createFromBase64('H1nlTKJBRCfZXrWul9AhGRVpIQ0=', 0), keyId: Long('7484323578087735302') } }, operationTime: Timestamp({ t: 1743003975, i: 1 }) } 注意
サンプルコードでは
moviesコレクションのインデックスが作成されなかったため、結果にはインデックスが含まれません。
詳細については、配置への接続を参照してください。
詳しくは、「 MongoDB への接続 」を参照してください。
次のサンプルアプリケーションは、接続文字列を使用してレプリカセットに接続し、 pingを送信して接続が成功したことを確認します。 サンプルアプリケーションをテストするには、次の手順を実行します。
connectという新しいディレクトリを作成し、dotnet newコマンドを使用してプロジェクトを初期化します。mkdir connect cd connect dotnet new console 次のコマンドを実行して、.NET/C# ドライバーを依存関係としてプロジェクトに追加します。
dotnet add package MongoDB.Driver Program.csファイルで接続設定を定義します。Program.csファイルの内容を、次のコードで置き換えます。サンプルコードは、次の処理を行います。ローカル配置に接続します。
1 つのドキュメントを含む
moviesという名前のコレクションをtestデータベースに挿入します。コレクションのすべての検索インデックスを検索します。
1 using MongoDB.Bson; 2 using MongoDB.Driver; 3 4 public class Connect 5 { 6 // Replace the following with your connection string 7 private const string MongoConnectionString = "<CONNECTION-STRING>"; 8 9 public static void Main(string[] args) 10 { 11 // Connect to your replica set 12 var client = new MongoClient(MongoConnectionString); 13 14 // Send a ping to confirm a successful connection 15 try { 16 var result = client.GetDatabase("admin").RunCommand<BsonDocument>(new BsonDocument("ping", 1)); 17 Console.WriteLine("Successfully connected to Replica Set"); 18 } 19 catch (Exception e) { Console.WriteLine(e);} 20 21 // Insert a document to a collection 22 var database = client.GetDatabase("test"); 23 var collection = database.GetCollection<BsonDocument>("movies"); 24 var movieDocument = new BsonDocument{{"title", "Back to the Future"}}; 25 try { 26 collection.InsertOne(movieDocument); 27 Console.WriteLine("Document inserted successfully."); 28 } 29 catch (Exception e) { 30 Console.WriteLine($"Insertion error: {e.Message}"); 31 } 32 33 // List search indexes 34 try { 35 var result = collection.SearchIndexes.List().ToList(); 36 if (indexes.Count == 0) { 37 Console.WriteLine("No indexes found on the collection."); 38 } 39 else { 40 Console.WriteLine("Indexes on the collection:"); 41 foreach (var index in indexes) 42 { 43 Console.WriteLine(index.ToJson()); 44 } 45 } 46 } 47 catch (Exception e) { 48 Console.WriteLine($"Error listing indexes: {e.Message}"); 49 } 50 } 51 } プレースホルダー(行 7)を接続文字列に置き換え、ファイルを保存します。
アプリケーションを実行します。
dotnet run Program.cs Successfully connected to MongoDB. Document inserted successfully. No indexes found on the collection. 注意
サンプルコードでは
moviesコレクションのインデックスが作成されなかったため、結果にはインデックスが含まれません。
詳細については、「接続オプション 」を参照してください。
次のサンプルアプリケーションは、接続文字列を使用してレプリカセットに接続し、 pingを送信して接続が成功したことを確認します。 次の手順でサンプルアプリケーションをテストします。
connectという新しいディレクトリを作成し、go modコマンドを使用してプロジェクトを初期化します。mkdir connect cd connect go mod init connect .goファイルで接続設定を定義します。プロジェクトで、
connect.goという新しいファイルを作成し、次のコードを貼り付けます。1 package main 2 3 import ( 4 "context" 5 "encoding/json" 6 "fmt" 7 "log" 8 9 "go.mongodb.org/mongo-driver/bson" 10 "go.mongodb.org/mongo-driver/mongo" 11 "go.mongodb.org/mongo-driver/mongo/options" 12 "go.mongodb.org/mongo-driver/mongo/readpref" 13 ) 14 15 type Movie struct { 16 Title string `bson:"title"` 17 } 18 19 func main() { 20 // Replace with your connection string 21 uri := "<CONNECTION-STRING>" 22 23 // Connect to MongoDB 24 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) 25 if err != nil { 26 log.Fatalf("Failed to connect to MongoDB: %v", err) 27 } 28 defer func() { 29 if err = client.Disconnect(context.TODO()); err != nil { 30 log.Fatalf("Failed to disconnect MongoDB client: %v", err) 31 } 32 }() 33 34 // Ping to confirm connection 35 if err := client.Ping(context.TODO(), readpref.Primary()); err != nil { 36 log.Fatalf("Failed to ping MongoDB: %v", err) 37 } 38 fmt.Println("Successfully connected to MongoDB") 39 40 // Insert a document to a collection 41 coll := client.Database("test").Collection("movies") 42 newMovie := Movie{Title: "Back to the Future"} 43 result, err := coll.InsertOne(context.TODO(), newMovie) 44 if err != nil { 45 log.Fatalf("Failed to insert document: %v", err) 46 } 47 fmt.Printf("Inserted document ID: %v\n", result.InsertedID) 48 49 // List search indexes 50 listOpts := options.ListSearchIndexesOptions{} 51 ctx := context.TODO() 52 cursor, err := coll.SearchIndexes().List(ctx, nil, &listOpts) 53 if err != nil { 54 log.Fatalf("Failed to list search indexes: %v", err) 55 } 56 57 var results []bson.D 58 if err = cursor.All(ctx, &results); err != nil { 59 log.Fatalf("Failed to iterate over cursor: %v", err) 60 } 61 62 res, err := json.Marshal(results) 63 if err != nil { 64 log.Fatalf("Failed to marshal results to JSON: %v", err) 65 } 66 fmt.Println("Search indexes found:", string(res)) 67 } プレースホルダー(行 15)を接続文字列に置き換え、ファイルを保存します。
アプリケーションを実行します。
go run connect.go Successfully connected to MongoDB Inserted document ID: ObjectID("67e42df345bc0b636fe340f0") Search indexes found: null 注意
サンプルコードでは
moviesコレクションのインデックスが作成されなかったため、結果にはインデックスが含まれません。
詳細については、接続を参照してください。
次のサンプルアプリケーションは、 接続文字列を使用してレプリカセットに接続します。 サンプルアプリケーションをテストするには、次の手順を実行します。
Javaクラスファイルで接続設定を定義します。
次のコードを
Connect.javaというファイルにコピーします。1 import com.mongodb.ConnectionString; 2 import com.mongodb.MongoClientSettings; 3 import com.mongodb.MongoException; 4 import com.mongodb.ServerApi; 5 import com.mongodb.ServerApiVersion; 6 import com.mongodb.client.MongoClient; 7 import com.mongodb.client.MongoClients; 8 import com.mongodb.client.MongoCollection; 9 import com.mongodb.client.MongoCursor; 10 import com.mongodb.client.MongoDatabase; 11 import org.bson.BsonDocument; 12 import org.bson.BsonInt64; 13 import org.bson.Document; 14 import org.bson.conversions.Bson; 15 16 public class Connect { 17 public static void main(String[] args) { 18 // Replace the placeholder with your Replica Set connection string 19 String uri = "<CONNECTION-STRING>"; 20 21 // Construct a ServerApi instance using the ServerApi.builder() method 22 ServerApi serverApi = ServerApi.builder() 23 .version(ServerApiVersion.V1) 24 .build(); 25 26 MongoClientSettings settings = MongoClientSettings.builder() 27 .applyConnectionString(new ConnectionString(uri)) 28 .serverApi(serverApi) 29 .build(); 30 31 // Create a new client and connect to the server 32 try (MongoClient mongoClient = MongoClients.create(settings)) { 33 MongoDatabase adminDatabase = mongoClient.getDatabase("admin"); 34 try { 35 // Send a ping to confirm a successful connection 36 Bson command = new BsonDocument("ping", new BsonInt64(1)); 37 adminDatabase.runCommand(command); 38 System.out.println("Successfully connected to Replica Set"); 39 } catch (MongoException e) { 40 System.err.println("Ping failed: " + e); 41 } 42 43 // Insert a document into a collection 44 MongoDatabase database = mongoClient.getDatabase("test"); 45 MongoCollection<Document> collection = database.getCollection("movies"); 46 Document movieDocument = new Document("title", "Back to the Future"); 47 try { 48 collection.insertOne(movieDocument); 49 System.out.println("Document inserted successfully."); 50 } catch (MongoException e) { 51 System.err.println("Insertion failed: " + e); 52 } 53 54 // List search indexes 55 try (MongoCursor<Document> resultsCursor = collection.listSearchIndexes().iterator()) { 56 System.out.println("Search indexes found:"); 57 while (resultsCursor.hasNext()) { 58 System.out.println(resultsCursor.next().toJson()); 59 } 60 } catch (MongoException e) { 61 System.err.println("Error listing indexes: " + e); 62 } 63 } catch (MongoException e) { 64 System.err.println("Failed to create MongoClient: " + e); 65 } 66 } 67 } プレースホルダー(行 14)を接続文字列に置き換え、ファイルを保存します。
IDE または次のコマンドを使用して、
Connect.javaファイルをコンパイルして実行します。javac Connect.java java Connect Successfully connected to Replica Set Document inserted successfully. Search indexes found: 注意
サンプルコードでは
moviesコレクションのインデックスが作成されなかったため、結果にはインデックスが含まれません。
詳しくは、「 MongoDB への接続 」を参照してください。
次のサンプルアプリケーションは、接続文字列を使用してレプリカセットに接続し、確認メッセージを返します。 サンプルアプリケーションをテストするには、次の手順を実行します。
.jsファイルで接続設定を定義します。次のコードを
connect.jsというファイルにコピーします。1 const { MongoClient } = require("mongodb"); 2 3 const url = "<CONNECTION-STRING>"; 4 5 // Connect to your Replica Set 6 const client = new MongoClient(url); 7 8 async function run() { 9 try { 10 await client.connect(); 11 console.log("Successfully connected to Replica Set"); 12 13 // Insert a document in a collection 14 const database = client.db("test"); 15 const coll = database.collection("movies"); 16 const doc = { title: "Back to the Future" }; 17 const insertResult = await coll.insertOne(doc); 18 console.log(`Document inserted with _id: ${insertResult.insertedId}`); 19 20 // List search indexes for the collection 21 const searchIndexesResult = await coll.listSearchIndexes().toArray(); 22 console.log("Search indexes:", searchIndexesResult); 23 } catch (err) { 24 console.log("Error occurred:", err.stack); 25 } finally { 26 await client.close(); 27 } 28 } 29 30 run().catch(console.dir); プレースホルダー(行 4)を接続文字列に置き換え、ファイルを保存します。
次のコマンドを使用してサンプルアプリケーションを実行します。
node connect.js Successfully connected to Replica Set Document inserted with _id: 67e432123504d5a7ed2156eb Search indexes: [] 注意
サンプルコードでは
moviesコレクションのインデックスが作成されなかったため、結果にはインデックスが含まれません。
詳細については、「 接続 」を参照してください。
PyMongo から MongoClient をインポートします。
実行中の MongoDB インスタンスに接続するには、PyMongo は
MongoClientが必要です。ターミナルで実行されている Python shell 内で、次のコマンドを実行してMongoClientをインポートします。from pymongo import MongoClient .pyファイルで接続設定を定義します。次のコードを
connect.pyという名前のファイルにコピーします。1 from pymongo import MongoClient, errors 2 3 # Replace '<connection-string>' with your actual MongoDB connection string 4 connection_string = '<CONNECTION-STRING>' 5 6 # Connect to MongoDB 7 try: 8 client = MongoClient(connection_string) 9 print("Successfully connected to MongoDB.") 10 except errors.ConnectionError as e: 11 print("Failed to connect to MongoDB:", e) 12 exit() 13 14 # Access the database and collection 15 database = client["test"] 16 collection = database["movies"] 17 18 # Insert a document into the collection 19 try: 20 result = collection.insert_one({"title": "Back to the Future"}) 21 print(f"Document inserted with _id: {result.inserted_id}") 22 except Exception as e: 23 print("Failed to insert document:", e) 24 25 # List search indexes for the collection (ensure method exists) 26 try: 27 cursor = collection.list_search_indexes() 28 indexes = list(cursor) # Convert cursor to list for ease 29 if indexes: 30 print("Search indexes found:") 31 for index in indexes: 32 print(index) 33 else: 34 print("No search indexes found.") 35 except Exception as e: 36 print("Failed to list search indexes:", e) 37 38 # Close the client connection (Optionally used here for resource management) 39 client.close() プレースホルダー(行 4)を接続文字列に置き換え、ファイルを保存します。
次のコマンドを使用してサンプルアプリケーションを実行します。
python connect.py Successfully connected to MongoDB. Document inserted with _id: 67e43400bd92a83c1a81cbb4 No search indexes found. 注意
サンプルコードでは
moviesコレクションのインデックスが作成されなかったため、結果にはインデックスが含まれません。
詳しくは、「 MongoDB への接続 」を参照してください。
次のステップ
レプリカセットに接続 したら、 MongoDB Search Community Edition を使用したクエリ に進みます。