【问题标题】:loopbackjs "inq" for array of objects对象数组的loopbackjs“inq”
【发布时间】:2018-09-19 11:05:01
【问题描述】:

我在环回模型中有对象字段数组。想使用“inq”选项按天过滤。已经看过文档,但那些是字符串数组,不是我找到的那个。

weekDays": [
        {
          "day": "Monday",
          "startTime": "03:45",
          "endTime": "04:23"
        },
        {
          "day": "Wednesday",
          "startTime": "03:23",
          "endTime": "12:23"
        }

字符串数组的语法类似于 {weekDays:{inq:[]}} ,帮助这里进行哪些修改。

【问题讨论】:

  • 你在你的 weekDays 模型上试过where : { day: { inq: ['Monday'] } } 吗?
  • @Daniel 感谢您的回复。WeekDays 不是模型,它是我模型的属性之一。
  • 你能像{'weekDays.day' : {$in: ["Monday"]}}一样尝试像db.getCollection('user').find({'weekDays.day' : {$in: ["Monday"]}})这样在robo 3T中的工作吗

标签: loopbackjs


【解决方案1】:

MongoDB可以使用两种方式

1.简单的find方法

db.getCollection('user').find({'weekDays.day' : {$in: ["Monday"]}})

2.使用聚合

db.getCollection('user').aggregate([
        {$unwind:'$weekDays'},
        {$match : {'weekDays.day' : {$in : ['Monday']}}},
         { "$group": {
        "_id": "$id",
         "weekDays" : { "$push": "$weekDays" },
        }},
    ])

3.聚合在loopback

var collection = ModelName.getDataSource().connector.collection("myCollection");

collection.aggregate(
  [ 
    { $unwind:'$weekDays' },
    { $match : {'weekDays.day' : {$in : ['Monday']}}},
    { "$group": { "_id": "$id", "weekDays" : { "$push": "$weekDays" }}},
  ],
  function(err, data) {
    if (err) {
    } else {
      console.lod(data)
      });
    }
  }
);

【讨论】:

  • 我正在为数据库使用 loopback-connector-composer。
猜你喜欢
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
相关资源
最近更新 更多