小编ems*_*son的帖子

查询数组大小大于1的文档

我有一个MongoDB集合,其中包含以下格式的文档:

{
  "_id" : ObjectId("4e8ae86d08101908e1000001"),
  "name" : ["Name"],
  "zipcode" : ["2223"]
}
{
  "_id" : ObjectId("4e8ae86d08101908e1000002"),
  "name" : ["Another ", "Name"],
  "zipcode" : ["2224"]
}
Run Code Online (Sandbox Code Playgroud)

我目前可以获得与特定数组大小匹配的文档:

db.accommodations.find({ name : { $size : 2 }})
Run Code Online (Sandbox Code Playgroud)

这正确地返回name数组中包含2个元素的文档.但是,我无法执行$gt命令返回name字段数组大小超过2的所有文档:

db.accommodations.find({ name : { $size: { $gt : 1 } }})
Run Code Online (Sandbox Code Playgroud)

如何选择name大小大于1 的数组的所有文档(最好不必修改当前数据结构)?

mongodb mongodb-query

611
推荐指数
14
解决办法
33万
查看次数

在Snow Leopard上安装mysql gem的问题:未初始化的常量MysqlCompat :: MysqlRes

我在尝试安装Ruby mysql gem驱动程序时遇到了问题.

我最近升级到Snow Leopard并完成了MySQL的Hivelogic手动安装.这一切似乎工作正常,因为我可以从命令行访问mysql并对数据库进行更改.

我的问题是,如果我现在使用

rake db:migrate 
Run Code Online (Sandbox Code Playgroud)

我明白了:

rake aborted!
uninitialized constant MysqlCompat::MysqlRes

(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

现在看来我的mysql gem工作不正常,因为我可以使用Python驱动程序(我编译到)从Python访问MySQL.因此,我尝试使用以下来自此站点的命令重建gem:http://techliberty.blogspot.com/,(顺便说一下,我使用的是最新的Intel MacBook Pro):

  sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Run Code Online (Sandbox Code Playgroud)

这个编译虽然我得到没有文档的定义:

  Building native extensions.  This could take a while...
  Successfully installed mysql-2.8.1
  1 gem installed
  Installing ri documentation for mysql-2.8.1...

  No definition for next_result

  No definition for field_name
  ...
Run Code Online (Sandbox Code Playgroud)

当我的mysql_config位于正确的位置时,我有点难过:

 /usr/local/mysql/bin/mysql_config
Run Code Online (Sandbox Code Playgroud)

我从我的系统中删除了mysql gem的所有其他实例.

任何建议将不胜感激.非常感谢.

PS我看到这个上一篇文章未初始化的常量MysqlCompat :: …

ruby mysql gem rubygems osx-snow-leopard

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

如何在非常大的SINGLE行文件中查找模式和周围内容?

我有一个非常大的文件100Mb +所有内容都在一行.我希望在该文件中找到一个模式,并在该模式周围找到许多字符.

例如,我想调用类似下面的命令,但其中-A和-B是字节数而不是行数:

cat very_large_file | grep -A 100 -B 100 somepattern
Run Code Online (Sandbox Code Playgroud)

所以对于包含这样内容的文件:

1234567890abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)

有一个模式

890abc
and a before size of -B 3 
and an after size of -A 3
Run Code Online (Sandbox Code Playgroud)

我希望它返回:

567890abcdef
Run Code Online (Sandbox Code Playgroud)

任何提示都会很棒.非常感谢.

bash parsing

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

Mapbox 鼠标悬停圆圈以使用特征状态更改颜色

我在 Mapbox 地图上的鼠标悬停期间使标记更改颜色时遇到问题。
mapbox-gl.js 的 0.47 版本允许您使用feature-state更改动态样式的功能。

这适用于 Mapbox 示例:https ://www.mapbox.com/mapbox-gl-js/example/hover-styles/

然而,在我的例子中,当特征标记feature-state发生变化时,样式似乎永远不会被触发。

我已经设法使用该map.setFilter功能使鼠标悬停工作,但是当我添加 1000 个标记时,这变得非常低效和缓慢。

任何提示将不胜感激,非常感谢。

请看我的示例代码...

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8' />
    <title>Create a hover effect</title>
    <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
    <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.47.0/mapbox-gl.js'></script>
    <link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.47.0/mapbox-gl.css' rel='stylesheet' />
    <style>
        body { margin:0; padding:0; }
        /* #map { position:absolute; top:0; bottom:0; width:100%; } */
        #map { width:100%; height: 500px; }
    </style>
</head>
<body>

<div id='map'></div>
<script>
mapboxgl.accessToken = 'pk.eyJ1IjoiY29kYm9kIiwiYSI6IjhjbFE1aUUifQ.Gimi98Oh3Uex9WQZlb5Wkw';
var map = new mapboxgl.Map({ …
Run Code Online (Sandbox Code Playgroud)

styling mapbox

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

pip 安装 python-lzo 时找不到文件错误

python-lzo我正在尝试在 mac OS Sierra 上安装。我曾经brew安装过clzo库:

brew update
brew install lzo
Run Code Online (Sandbox Code Playgroud)

然后我尝试python-lzo使用虚拟环境进行安装pip

$ virtualenv ./env
$ . ./env/bin/activate
$ pip install python-lzo
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

Collecting python-lzo
  Using cached python-lzo-1.11.tar.gz
Building wheels for collected packages: python-lzo
  Running setup.py bdist_wheel for python-lzo: started
  Running setup.py bdist_wheel for python-lzo: finished with status 'error'
  Complete output from command /usr/local/opt/python/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/38/v_r4bjvx7dz626x16nh6jcn00000gn/T/pip-build-wDRYjx/python-lzo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/38/v_r4bjvx7dz626x16nh6jcn00000gn/T/tmp_ueOY4pip-wheel- --python-tag cp27:
  /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:251: UserWarning: 'licence' …
Run Code Online (Sandbox Code Playgroud)

python lzo macos-sierra

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

使用Ruby将句子中每个单词的最后一个字符更改为大写字母

我被要求编写一些Ruby代码,将句子中每个单词的最后一个字符更改为大写字母.这样的字符串:

"script to convert the last letter of every word to a capital"
Run Code Online (Sandbox Code Playgroud)

"scripT tO converT thE lasT letteR oF everY worD tO A capitaL"
Run Code Online (Sandbox Code Playgroud)

这是我最终使用的:

"script to convert the last letter of every word to a capital".split.map{|w|w<<w.slice!(-1).chr.upcase}.join' '
Run Code Online (Sandbox Code Playgroud)

对于那些对这里发生的事情感兴趣的人是一个解释.

split会将句子分成一个数组,默认的分隔符是一个空格,使用Ruby你不需要在这里使用括号.

将数组映射split传递给map,它打开一个块并处理数组中的每个单词(w).块切片!(S)断字的最后一个字符,并将其转换为CHR(字符不是ASCII码),然后大写upcase它.此字符现在附加<<到缺少切片的最后一个字母的单词.最后字的阵列现在加入了一起'改革句子.

ruby

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