小编chr*_*dam的帖子

通过数组上的推送操作和对象上的设置操作进行mongoose更新

我有这个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)

arrays mongoose mongodb node.js

7
推荐指数
1
解决办法
6197
查看次数

MongoDB高级查询:获取匹配第二个条件的数组中的元素

我们有一组具有以下结构的元素:

内容:

{
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的项目.

mongodb

6
推荐指数
1
解决办法
5149
查看次数

jQuery移动点击事件无效

移动网页中的点击功能有问题.这是我的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)

请帮我解决这个问题.

jquery jquery-mobile

6
推荐指数
1
解决办法
1万
查看次数

如何强制使用文件上载字段

你好,任何人都可以解决这个问题.

我的输入字段在代码下方,我正在对表单提交进行验证,即:

<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 [].

javascript validation jquery

6
推荐指数
3
解决办法
2万
查看次数

事件不适用于html5对象标记

似乎触发/在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


问题:

  1. 我只有一个有这个错误的人还是我做错了什么?
  2. 这是一个jQuery错误还是预期的行为?
  3. 任何变通方法(特别是除了使用其他元素之外的自定义事件)?

html javascript jquery html5 javascript-events

6
推荐指数
1
解决办法
1153
查看次数

MongoDB组并以id作为键

是否有可能将聚合函数的结果作为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对结果进行后处理来做到这一点,但我的目标是直接通过聚合函数来完成.

mongodb mongodb-query aggregation-framework

6
推荐指数
1
解决办法
2156
查看次数

如何在测试环境中启用分片

如何在测试环境中启用分片?在这里,我分享我到目前为止所做的事情,我有一个配置服务器:

配置server1:Host-a:27019

同一台机器上的一个mongos实例port 27017 和两个mongod实例分片:

  • 主机A:27020
  • 主机B:27021

当我在集合上启用分片时,它给了我这个错误:

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)

sharding mongodb

6
推荐指数
0
解决办法
183
查看次数

使用 mongoose 在 mongoDB 集合中保留单个文档

我创建了一个集合,但其中应该保留一个文档。如何确保 mongoose 模式中有单个文档?

mongoose mongodb

6
推荐指数
1
解决办法
7921
查看次数

Xamarin Form WebView高度作为HTML内容

在这里,我有一个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)

webview xamarin.forms

6
推荐指数
1
解决办法
892
查看次数

如何将组合框项目放在列表中?

我使用以下方法将项目添加到组合框中:

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)

现在我想将这些值放在字符串列表中.这可能吗?我该怎么做?

c# sql-server wpf combobox

6
推荐指数
1
解决办法
5542
查看次数