使用sequelize检查db输入属性(数组)是否具有给定项。 拥有一个包含数据事件的Postgres数据库。 想要获得一个活动,其中包含 weekDays 。 weekDays 的类型是ARRAY(整数)。
Events.findOne({
where: {
weekDays: {
$contains: [2, 3],
},
},
});
尝试使用$ contains,$ any或$ like $ any,但始终得到相同的错误消息。
TypeError:values.map不是函数
真诚地感谢
答案 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
<input type="checkbox" name="cbOrder" id="@item.Id" /></span></p>
</div>
</div>
}
数组中与传入数组中的任何值匹配的任何值。
因此,您可以使用PG特定的weekDays
运算符:
然后可以像
一样使用Sequelize.Op.overlap