MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

一部の値がnullの場合でも、MongoDB $ concatArraysを実装しますか?


これには、$ifNull演算子とともに集約フレームワークを使用します。集約の$concatArraysは、配列を連結するために使用されます。まず、ドキュメントを使用してコレクションを作成しましょう-

>db.concatenateArraysDemo.insertOne({"FirstSemesterSubjects": ["MongoDB","MySQL","Java"],"SecondSemesterSubjects":["C","C++",]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd687707924bb85b3f4895c")
}
> db.concatenateArraysDemo.insertOne({"FirstSemesterSubjects":["C#","Ruby","Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd687927924bb85b3f4895d")
}
>db.concatenateArraysDemo.insertOne({"FirstSemesterSubjects":["HTML","CSS","Javascript"],"SecondSemesterSubjects":["CSS","Javascript"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd687bb7924bb85b3f4895e")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.concatenateArraysDemo.find().pretty();

これにより、次の出力が生成されます-

{
   "_id" : ObjectId("5cd687707924bb85b3f4895c"),
   "FirstSemesterSubjects" : [
      "MongoDB",
      "MySQL",
      "Java"
   ],
   "SecondSemesterSubjects" : [
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5cd687927924bb85b3f4895d"),
   "FirstSemesterSubjects" : [
      "C#",
      "Ruby",
      "Python"
   ]
}
{
   "_id" : ObjectId("5cd687bb7924bb85b3f4895e"),
   "FirstSemesterSubjects" : [
      "HTML",
      "CSS",
      "Javascript"
   ],
   "SecondSemesterSubjects" : [
      "CSS",
      "Javascript"
   ]
}

以下は、nullの場合でも配列を連結するためのクエリです-

> db.concatenateArraysDemo.aggregate([
   {$project: {
      ConcatenateArrays: { '$concatArrays': [
         {$ifNull: ['$FirstSemesterSubjects', []]},
         {$ifNull: ['$SecondSemesterSubjects', []]}
      ] }
   } }
]);

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5cd687707924bb85b3f4895c"), "ConcatenateArrays" : [ "MongoDB", "MySQL", "Java", "C", "C++" ] }
{ "_id" : ObjectId("5cd687927924bb85b3f4895d"), "ConcatenateArrays" : [ "C#", "Ruby", "Python" ] }
{ "_id" : ObjectId("5cd687bb7924bb85b3f4895e"), "ConcatenateArrays" : [ "HTML", "CSS", "Javascript", "CSS", "Javascript" ] }

  1. MongoDBドキュメントのnull値を無視する

    MongoDBでnull値を無視するには、 $ ne:nullを使用します 集約()で。ドキュメントを使用してコレクションを作成しましょう- > db.demo722.insertOne( ...    { ...       id:101, ...       details: [ ...          { Name:""}, ...          { Name: "Da

  2. MySQLで値が同じ場合に特定の行をフェッチするにはどうすればよいですか?

    値が同じ場合に特定の行をフェッチするには、GROUPBYを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable659(Id int,Name varchar(100),Score int); Query OK, 0 rows affected (0.52 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable659 values(11,'John',45); Query OK, 1 row affected (0.14 sec) mys