sql >> データベース >  >> NoSQL >> MongoDB

if条件でクエリを書く方法をマングース?

    javascriptを使用して、クエリパラメータに基づいてjsonドキュメントを動的に作成できます。

    更新された関数は次のようになります

    post.getSpecificDateRangeJobs = function(queryData, callback) {
    
      var matchCriteria = queryData.matchCriteria;
      var currentDate = new Date();
    
      // match document
      var match = {
        "expireDate": {
          "$gte": currentDate 
        }
      };
    
      if (matchCriteria !== "") {
        match["$text"]: {
          "$search": matchCriteria
        }
      };
    
      // group document
      var group = {
        _id: null
      };
    
      // Logic to calculate hours difference between current date and publish date is less than 30 hours.
    
      if (queryData.dateGroups.thirtyHourAgo) {
        group["thirtyHourAgo"] = {
          "$sum": {
            "$cond": [{
                "$lte": [{
                  "$divide": [{
                    "$subtract": [currentDate, "$publishDate"]
                  }, 1000 * 60 * 60]
                }, 30]
              },
              1,
              0
            ]
          }
        };
      }
    
      // Similarly add more grouping condition based on query params.
    
      var postsCollection = post.getDataSource().connector.collection(
        post.modelName
      );
    
      // Use aggregate builder to create aggregation pipeline.
    
      postsCollection.aggregate()
        .match(match)
        .group(group)
        .exec(function(err, groupByRecords) {
          if (err) {
            return callback("err");
          }
          return callback(null, groupByRecords);
        });
    
    };
    


    1. Mongodb、datediffによるグループ化と時間の取得

    2. mongodbnodejs-循環構造の変換

    3. mongoDB参照のフェッチには時間がかかります

    4. ネストされた属性が無効な場合でも、update_attributesは常にtrueを返します