小编Pet*_*rov的帖子

MongoDB/mongoose查询和$ in运算符

关于在http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in中使用$的MongoDB/mongoose查询的问题

如果我进行一个查询,其中目标字段和$ in字段都有多个值,有没有办法知道哪个target/$ in字段元素在返回的参数中匹配?

例如,如果我有一堆像这样的文件

doc1 = { name : Abe, children : [Betty, Claire, Donald, Eamon] }
Run Code Online (Sandbox Code Playgroud)

我设置了一个查询

Model.find( { children : { $in : [Ann, Betty, Clive] } })
Run Code Online (Sandbox Code Playgroud)

如果我得到上面的结果doc1,有什么方法我可以知道(没有手动迭代数组)哪个目标元素和哪个$ in元素匹配?所以在上面的例子中,我如何才能访问doc1被选中的事实,因为它匹配'Betty'?提前致谢!

mongoose mongodb nosql

5
推荐指数
1
解决办法
2758
查看次数

静态javascript无法在jade中呈现(使用express/node.js)

我希望你一切都好.

我突然无法在jade模板中呈现任何外部javascript!为了解决问题的根源,我将其剥离到最低限度:

节点0.6.11,Express 2.5.8,jade 0.20.3

app.js

var express = require('express')
, routes = require('./routes');

var app = module.exports = express.createServer();

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

app.get('/', function(req, res){
  res.render('index', { title: 'Express' });
});

app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

layout.jade

!!!
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
    script(type='text/javascript', src='/javascripts/script.js')
  body!= body
Run Code Online (Sandbox Code Playgroud)

的script.js

alert('hello!');
Run Code Online (Sandbox Code Playgroud)

在我看来,当我运行服务器并加载http:// localhost:3000 /时,我应该直接得到'你好!' 消息,但它只是直接运行到正常页面.更重要的是,如果我手动输入

script
  alert('hello!') …
Run Code Online (Sandbox Code Playgroud)

node.js express pug

4
推荐指数
2
解决办法
8793
查看次数

Amazon Elastic beanstalk:使用nginx/apache将子域转发到子文件夹

我在ebs上创建了我的node.js应用程序,其中有两个子路由器'foo'和'bar',目前可以通过'example.com/foo'和'example.com/bar'访问.

我希望ebs的反向代理将子域"foo.example.com"和"bar.example.com"转发到这些子文件夹......

即"foo.example.com/xxx"到"example.com/foo/xxx""bar.example.com/yyy"到"example.com/bar/yyy"等.

我知道如何配置nginx来做到这一点,但我无法想出去访问EBS上的nginx配置文件...

一年前有人问过同样的事情,但似乎EBS已经开发了一个很好的协议,因为......我想知道这种事情现在是否可行.

.htaccess amazon nginx amazon-elastic-beanstalk

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

mongodb objectid的一部分最有可能是独一无二的

在我的应用程序中,我让mongo通过其ObjectId方法生成订单ID.

但是在用户测试中,我们有一些担心订单ID是人为的"恐吓",即如果你需要通过电话与某人讨论你的订单,读出24个字母数字字符有点单调乏味.

与此同时,我真的不想存储两个不同的id,一个是"人类可访问的",另一个是内部使用的mongo.

所以我的问题是 - 有没有办法选择长度为6或甚至8的mongo objectId字符串的子字符串,我可以相当确定它是唯一的?

例如,如果我有像这样的mongo objectid

id = '4b28dcb61083ed3c809e0416'
Run Code Online (Sandbox Code Playgroud)

也许我可以拿出来

human_id = id.substr(0,7);
Run Code Online (Sandbox Code Playgroud)

并确保我总是为我的订单获得唯一的ID ...

当然,优点是这些是订单,人类创造的也是如此,因此每毫秒不会有数百万.另一方面,如果两个订单具有相同的缩短ID,那真的会成为一个问题......

---更清楚的解释---

我想问一个更好的问题是:

例如,如果我决定只使用mongo id的最后6个字符,是否有某种"概率"度量,这些6个字符在给定的一周内会重复?

给定一定数量的mongo并行运行,一周内有一定数量的用户等.

mongodb bson objectid

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

Jquery.deferred的语法,使同步函数返回promise

关于如何使用Jquery.deferred来生成慢同步函数的快速问题会返回一个promise.到目前为止我所做的是:

function sayIt(ms) {
    setTimeout( function() { console.log('what I say'); }, ms);
} 

function doIt() {
    return $.Deferred( function() { sayIt(2000); }).promise();
}


doIt().then( function() { console.log('ah'); });
Run Code Online (Sandbox Code Playgroud)

sayIt(2000)总是通过,但'then'之后的链式函数永远不会触发.

如果我这样做:

doIt().then( console.log('ah'));
Run Code Online (Sandbox Code Playgroud)

'啊'马上出现,然后我说'我说'2000ms之后 - 我想要的当然是相反的 - 两秒后我得到'我说的',然后'啊'.

任何建议赞赏!

javascript promise jquery-deferred

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

Excel VBA - 选择列末尾减去两行

E9说,我处于一种我希望从一个单元格开始的情况,我想选择下到列的末尾除了我不想在列中包含最后两个单元格.

所以举个例子

A
B
C
D
E
Run Code Online (Sandbox Code Playgroud)

我想在列中选择范围A:C,但不是D和E.

试过

ActiveSheet.Range("E9", ActiveSheet.Range("E9").End(xlUp)).Select
Run Code Online (Sandbox Code Playgroud)

但不知道如何砍掉最后两个细胞......

excel vba excel-vba

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

Node.js/ express.js/ Backbone.js : req.body.keys 未定义?

我在客户端使用 Backbone.js,在服务器上使用 express.js,我正在尝试通过 Backbone 保存/放置模型更新。我没有对 Backbone.sync 做任何事情,所以它应该只是简单的旧 $.ajax。

在服务器上,我有一个简单的

app.put('my-url', function(req, res){
  req.body.keys.forEach( function(key){
    // do stuff with key
  });
});
Run Code Online (Sandbox Code Playgroud)

每次,我都会收到一条错误消息,说'无法调用未定义的方法'forEach',果然快速的console.log 显示req.body.keys 是未定义的。另一个快速的 console.logs 显示 Object.keys 和 'forEach' 都很好,那个 typeof req.body 是对象。

有人看到出了什么问题吗?我尝试了 JSON.parse(req.body) 并得到了著名的 'unexpected token o' 错误......

node.js ecmascript-5 express backbone.js

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