特定の単語の部分文字列である文字列が配列に含まれているドキュメントを検索するためのMongoDBクエリ
このような評価には、MongoDBでaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう-
> db.demo90.insertOne( ... {"words": ["john", "jace"] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e2c1ada79799acab037af56") } > db.demo90.insertOne( ... {"words": ["sam", "adam"] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e2c1adb79799acab037af57") }
find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo90.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e2c1ada79799acab037af56"), "words" : [ "john", "jace" ] } { "_id" : ObjectId("5e2c1adb79799acab037af57"), "words" : [ "sam", "adam" ] }
以下は、特定の単語の部分文字列である文字列が配列に含まれているドキュメントを検索するためのクエリです-
> db.demo90.aggregate([ { $match: { $expr: { $anyElementTrue: { $map: { input: "$words", as: "j", in: { $ne: [ -1, { $indexOfBytes: [ "john", "$$j" ] } ] } } } } } } ]);
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e2c1ada79799acab037af56"), "words" : [ "john", "jace" ] }
-
特定の文字列が含まれているMongoDBドキュメントを見つけますか?
特定の文字列が含まれているドキュメントを見つけるには、find()とともに$regexを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo597.insertOne({"Name":"John Doe"});{ "acknowledged" : true, "insertedId" : ObjectId("5e947ae3f5f1e70e134e2690") } > db.demo597.insertOne({"N
-
MongoDBで配列をクエリして、特定の値をフェッチします
配列から特定の値をフェッチするには、$ projectとともにaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo761.insertOne( ... { ... "details": [ ... { ... "student": { ... &nb