我有这个mongoose架构
var ContactSchema = module.exports = new mongoose.Schema({
name: {
type: String,
required: true
},
phone: {
type: Number,
required: true,
},
messages: [
{
title: {type: String, required: true},
msg: {type: String, required: true}
}],
address:{ city:String,
state:String
}
});
Run Code Online (Sandbox Code Playgroud)
我最初收集了名称和电话字段.我需要将带有新消息的集合更新为messages数组,将新地址更新为address对象.该函数还必须处理任何单个操作,即在某些情况下我只更新消息数组或更新名称和地址.所以我怎么能在一个功能中完成所有操作.
var messages= {
title: req.body.title,
msg: req.body.msg
}
Model.findOneAndUpdate({'_id': req.body.id,},{$push: {messages:message}},{upsert: true}, function (err, data) {
if (err) {
return res.status(500).send(err);
}
if (!data) {
return res.status(404).end();
}
return res.status(200).send(data);
});
Run Code Online (Sandbox Code Playgroud) 我们有一组具有以下结构的元素:
内容:
{
id : 123,
items : [ { color: "blue", "groups" : [3, 5] }, { color: "red", "groups" : [6, 8] } ]
}
{
id : 124,
items : [ { color: "blue", "groups" : [1, 2] }, { color: "green", "groups" : [5, 9] } ]
}
Run Code Online (Sandbox Code Playgroud)
我们想要一种有效的方法来获取具有颜色为蓝色的项目的元素可以访问组5,9,27,123或56.这应该返回ID为123的元素,但不返回ID为124的元素,因为item必须满足这两个条件.我们希望查询尽可能高效.
此查询有效但不符合要求:
{$and : { "items.groups" : { $in : [5, 9, 27, 123, 56] }, "items.color" : "blue" }}
Run Code Online (Sandbox Code Playgroud)
它会匹配,id = 124因为它有一个匹配"蓝色"的项目和另一个匹配组9的项目.
移动网页中的点击功能有问题.这是我的HTML代码
<div data-role=content>
<input type="text" id="text">
<div id="ss"></div>
</div>
<script type="javascript">
$(document).ready(function() {
$("#text").keyup(function(){
$('#ss').append('<div style="background:yellow;" >Text<br/><a class="te"> alert </a></div>');
});
$(".te").click(function(){
alert("It is working");
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题.
你好,任何人都可以解决这个问题.
我的输入字段在代码下方,我正在对表单提交进行验证,即:
<input name="file[]" type="file" multiple="multiple">
<form name="bdmrequest" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER["PHP_SELF"];?>" onsubmit="return(validate());">
Run Code Online (Sandbox Code Playgroud)
我已在头文件中包含validate.js,我可以对文件上传以外的其他字段进行验证.我正在使用的验证码:
if(document.bdmrequest.file.value== "")
{
alert("Attachment Required");
document.bdmrequest.file.focus();
return false;
}
Run Code Online (Sandbox Code Playgroud)
js不支持我使用(document.bdmrequest.file [] .value =="")请建议我替代方案.我的输入类型的名称只能是file [].
似乎触发/在jquery事件上标准和自定义都不适用于对象标记.
这并不起作用:
var $test = $("<object>");
$test.on("test", function (){
console.log("jquery test handler");
});
$test.trigger("test");
Run Code Online (Sandbox Code Playgroud)
虽然它适用于其他html标签(尝试div,视频等).
Vanilla js解决方案的工作原理:
var test = document.createElement("object");
test.addEventListener("testV", function(e) {
console.log("vanilla test handler");
});
var event = new CustomEvent("testV");
test.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)
jQuery ver.1.11.1
测试:http://codepen.io/anon/pen/dPGoJg
问题:
是否有可能将聚合函数的结果作为key:count?
例:
我有以下聚合查询:
db.users.aggregate([
{
$group: {
_id: "$role",
count: {
$sum: 1
}
}
}
])
Run Code Online (Sandbox Code Playgroud)
结果如下:
{ "_id" : "moderator", "count" : 469 }
{ "_id" : "superadmin", "count" : 1 }
{ "_id" : "user", "count" : 2238 }
{ "_id" : "admin", "count" : 11 }
Run Code Online (Sandbox Code Playgroud)
所以这一切都很好,但有没有一种方法(可能使用$project)使结果看起来像这样(即使用role键作为键和count值):
{ "moderator": 469 }
{ "superadmin": 1 }
{ "user": 2238 }
{ "admin": 11 }
Run Code Online (Sandbox Code Playgroud)
我可以通过使用JS对结果进行后处理来做到这一点,但我的目标是直接通过聚合函数来完成.
如何在测试环境中启用分片?在这里,我分享我到目前为止所做的事情,我有一个配置服务器:
配置server1:Host-a:27019
同一台机器上的一个mongos实例port 27017
和两个mongod实例分片:
当我在集合上启用分片时,它给了我这个错误:
2016-01-12T10:31:07.522Z I SHARDING [Balancer] ns: feedproductsdata.merchantproducts going to move { _id: "feedproductsdata.merchantproducts-product_id_MinKey", ns: "feedproductsdata.merchantproducts", min: { product_id: MinKey }, max: { product_id: 0 }, version: Timestamp 1000|0, versionEpoch: ObjectId('5694d57ebe78315b68519c38'), lastmod: Timestamp 1000|0, lastmodEpoch: ObjectId('5694d57ebe78315b68519c38'), shard: "shard0001" } from: shard0001 to: shard0000 tag []
2016-01-12T10:31:07.523Z I SHARDING [Balancer] moving chunk ns: feedproductsdata.merchantproducts moving ( ns: feedproductsdata.merchantproducts, shard: shard0001:192.168.1.12:27021, lastmod: 1|0||000000000000000000000000, min: { product_id: MinKey }, max: { product_id: 0 }) shard0001:192.168.1.12:27021 -> …Run Code Online (Sandbox Code Playgroud) 我创建了一个集合,但其中应该保留一个文档。如何确保 mongoose 模式中有单个文档?
在这里,我有一个WebView可以加载3 gif的html页面。我希望WebView变得和HTML内容一样大。这是可能的?在WebView下,我在Label中显示了一些说明
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" >
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
...
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<WebView x:Name="webw1" Grid.Row="0" Grid.Column="0"></WebView>
</Grid>
<Grid Grid.Row="2" >
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ScrollView Grid.Row="0" Grid.Column="0">
<Label Text="LastExplanation" x:Name="lblLastExplanation" />
</ScrollView>
</Grid>
</Grid>
</Grid>
</ContentPage>
public FinalCheck()
{
InitializeComponent();
webw1.Source = DependencyService.Get<IBaseUrl>().Get() + "instruction.html";
}
Run Code Online (Sandbox Code Playgroud) 我使用以下方法将项目添加到组合框中:
SqlDataReader sqlReader = sqlCmd.ExecuteReader();
while (sqlReader.Read())
{
string name = sqlReader.GetString(0);
combobox1.Items.Add(name);
}
sqlReader.Close();
conn.Close();
Run Code Online (Sandbox Code Playgroud)
现在我想将这些值放在字符串列表中.这可能吗?我该怎么做?
mongodb ×5
jquery ×3
javascript ×2
mongoose ×2
arrays ×1
c# ×1
combobox ×1
html ×1
html5 ×1
node.js ×1
sharding ×1
sql-server ×1
validation ×1
webview ×1
wpf ×1