小编sc2*_*c28的帖子

Mongodb:从mongo shell中的ObjectId执行日期范围查询

我有一个看起来像这样的集合:

{
  _id: ObjectId("50a68673476427844b000001"),
  other fields
}
Run Code Online (Sandbox Code Playgroud)

我想做一个范围查询来查找两个日期之间的记录.我知道我可以从mongo shell var中的ObjectId获取日期:

var aDate = ObjectId().getTimestamp()
Run Code Online (Sandbox Code Playgroud)

但是目前还没有一种方法(据我现在可以搞清楚)创建一个仅包含时间戳部分的ObjectId - 我认为我的理想解决方案是无功能的mongo shell代码将是:

var minDate = ObjectId(new Date("2012-11-10"));
var maxDate = ObjectId(new Date("2012-11-17"));
Run Code Online (Sandbox Code Playgroud)

使用minDate和MaxDate作为范围值.

有没有办法在SHELL中做到这一点 - 我对一些驱动程序产品不感兴趣.

mongodb mongodb-shell

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

理解函数和未定义

来自非JavaScript背景,我试图围绕'未定义'.我写了一个"isUndefined"函数如下:

function isUndefined(value) {
    return (typeof value === 'undefined');
}
Run Code Online (Sandbox Code Playgroud)

如果我输入我的源代码(变量'boo'不存在),我得到预期结果"未定义变量".

if (typeof boo === 'undefined') {
    console.log('undefined variable');
}
Run Code Online (Sandbox Code Playgroud)

如果我键入以下内容: console.log (isUndefined(undefined));

我得到预期的结果'真'

如果我输入: console.log(isUndefined(boo));

我明白了:

参考错误:未定义boo.

我希望得到'真' - 所以我的问题是为什么第一次'直接'检查undefined会返回预期的结果,但是对它进行的函数()测试却没有?

javascript

8
推荐指数
1
解决办法
136
查看次数

使用Angularjs强制"软"更新字段

我有一个应用程序,称之为"表单填充程序",它与许多很多站点一起使用Jquery来自动更新字段.

伪代码:

  1. 将Jquery注入网页
  2. 发现所需的表格.
  3. 更新值,例如,


$(document).ready(function) {
   $('#id').val("some value");
}
Run Code Online (Sandbox Code Playgroud)

我有一个新客户正在使用Angularjs,这个模型因为$ scope显然正在"带外"更新而崩溃.我无法访问第三方来源进行更改,所以我想知道是否可能获得jQuery更新来触发Angularjs更新?

angularjs angularjs-scope

4
推荐指数
1
解决办法
2511
查看次数

Mongodb $ cond在聚合框架中

我有一个包含如下文档的集合:{

ipAddr: '1.2.3.4',
"results" : [
             {
                     "Test" : "Sight",
                     "Score" : "FAIL",
                     "Reason" : "S1002"
             },
             {
                     "Test" : "Speed",
                     "Score" : "FAIL",
                     "Reason" : "85"
             },
             {
                     "Test" : "Sound",
                     "Score" : "FAIL",
                     "Reason" : "A1001"
             }
     ],
     "finalGrade" : "FAILED"
Run Code Online (Sandbox Code Playgroud)

}

这是我正在尝试编写的聚合查询,我想要做的事情(请参阅注释掉的部分),是为了创建"原因/错误"代码的每个ipAddr的分组字段,但仅当原因代码开头时一个特定的字母,只在一次添加代码,我尝试了以下内容:

 db.aggregate([
   {$group: 
        {  _id: "$ipAddr", 
         attempts: {$sum:1}, 
         results: {$push: "$finalGrade"},    
        // errorCodes: {$addToSet: {$cond: ["$results.Reason": /[A|B|S|N.*/, "$results.Reason", ""]}},                                                              
        finalResult: {$last: "$finalGrade"} } 
   }
]);
Run Code Online (Sandbox Code Playgroud)

一切正常,不包括注释掉的'errorCodes'行.我试图创建的逻辑是:"添加errorCodes设置结果的值.因为它以A,B,S或N开头,否则没有任何东西可以添加".

对于上面的记录,errorCodes集包含:
... errorCodes:[S1002,A1001],...

mongodb

3
推荐指数
1
解决办法
4831
查看次数