アレイ内のアレイをスライスするためのMongoDBアグリゲーション
これには、MongoDBでaggregate()を使用します。その中で、$sliceを使用して配列内の配列をスライスします。ドキュメントを使用してコレクションを作成しましょう-
> db.demo111.insertOne(
... {
... "_id" : 101,
... "Name" : "Chris",
... "Details" : [
... {
... "_id" : 101,
... "Score" : 78,
... "Subjects" : [
... {
... "_id" : "10001",
... "SubjectName" : "MySQL"
... },
... {
... "_id" : "10003",
... "SubjectName" : "MongoDB"
... }
... ]
... },
... {
... "_id" : 102,
... "Score" : 87,
... "Subjects" : [
... {
... "_id" : "10004",
... "SubjectName" : "Java"
... }
... ]
... }
... ]
... }
... );
{ "acknowledged" : true, "insertedId" : 101 } find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo111.find();
これにより、次の出力が生成されます-
{
"_id" : 101, "Name" : "Chris", "Details" : [
{ "_id" : 101, "Score" : 78, "Subjects" : [ { "_id" : "10001", "SubjectName" : "MySQL" },
{ "_id" : "10003", "SubjectName" : "MongoDB" } ] },
{ "_id" : 102, "Score" : 87, "Subjects" : [ { "_id" : "10004", "SubjectName" : "Java" } ] }
]
} 以下は、配列内の配列をスライスするためのクエリです-
> db.demo111.aggregate([
... { "$addFields": {
... "Details": {
... "$map": {
... "input": "$Details",
... "as": "out",
... "in": {
... "_id": "$$out._id",
... "Score": "$$out.Score",
... "Subjects": { "$slice": [ "$$out.Subjects", 1 ] }
... }
... }
... }
... }}
... ]) これにより、次の出力が生成されます-
{
"_id" : 101, "Name" : "Chris", "Details" : [
{ "_id" : 101, "Score" : 78, "Subjects" : [ { "_id" : "10001", "SubjectName" : "MySQL" } ] },
{ "_id" : 102, "Score" : 87, "Subjects" : [ { "_id" : "10004", "SubjectName" : "Java" } ] }
]
} -
JavaScript配列slice()
JavaScriptのslice()メソッドは、配列内の選択された要素を返すために使用されます。 構文は次のとおりです- array.slice(start, end) 上記のstartパラメータは、選択を開始する場所を指定する整数ですが、endは選択が終了する場所です。 JavaScriptでslice()メソッドを実装しましょう- 例 <!DOCTYPE html> <html> <body> <h2>Demo Heading</h2> <p id="t
-
MongoDBアグリゲーションで配列の要素のサブセットを一緒に追加するにはどうすればよいですか?
配列の要素のサブセットを追加するには、$firstと$sumを一緒に使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo610.insertOne({Values:[10,20,30,40,50]});{ "acknowledged" : true, "insertedId" : ObjectId("5e9747b8f57d0dc0b182d62e") } find()メソッドを使用してコレクションからすべてのドキュメントを表示する- > db.demo610.f