Sequelize:重叠 - 检查数组中的任何值是否与传递的数组中的任何值匹配

时间:2018-01-18 16:44:13

标签: sql node.js database postgresql sequelize.js

使用sequelize检查db输入属性(数组)是否具有给定项。 拥有一个包含数据事件的Postgres数据库。 想要获得一个活动,其中包含 weekDays weekDays 的类型是ARRAY(整数)。

Events.findOne({
  where: {
    weekDays: {
      $contains: [2, 3],
    },
  },
});

尝试使用$ contains,$ any或$ like $ any,但始终得到相同的错误消息。

  

TypeError:values.map不是函数

真诚地感谢

1 个答案:

答案 0 :(得分:5)

您正在寻找重叠值。您 //Item COntroller public ActionResult Index(int id=1) { // var items = db.Items.ToArray(); var items = db.Items.Where(i => i.CategoryID == id).ToList(); var categories = db.Categories.ToList(); ViewBag.Categories = categories; // var content=db.Items.ToList(); return View(items); } //View (index) <script> $("#Categories").change(function (event) { var userId = $(this).val(); $.ajax({ url: "@Url.Action("Index","Item")", data: { id: userId }, type: "Get", dataType: "html", success: function (data) { //Whatever result you have got from your controller with html partial view replace with a specific html. alert(data); $("#divView").html(data); // HTML DOM replace } }); }); </script> <h2>Index</h2> <div class="form-group"> @*@Html.LabelFor("CategoryID",new SelectList(pr htmlAttributes: new { @class = "control-label col-md-2" })*@ <div class="col-md-10"> @Html.DropDownList("Categories", new SelectList(ViewBag.Categories, "CategoryID", "CategoryName"), "--Please Select--", htmlAttributes: new { @class = "form-control" }) @*@Html.ValidationMessageFor(model => model.CategoryID, "", new { @class = "text-danger" })*@ </div> <input type="submit" value="submit" /> </div> <div id="divView"></div> @foreach (var item in Model) { <div class="col-md-2"> <img class="img-responsive img-rounded" src="/Item/RetrieveImage/@item.Id" /> <div> <p>@item.ItemName</p> <p>Rs.<span>@item.Price</span><span class="pull-right">Order&nbsp; <input type="checkbox" name="cbOrder" id="@item.Id" /></span></p> </div> </div> } 数组中与传入数组中的任何值匹配的任何值。

因此,您可以使用PG特定的weekDays运算符:

See documentation here

然后可以像

一样使用
Sequelize.Op.overlap