是否可以在MongoDB中显示所有集合及其内容?
是一个一个一个展示的唯一方法吗?
当我有一些id,比如
ids = [2,3,5]
Run Code Online (Sandbox Code Playgroud)
我表演
Comment.find(ids)
Run Code Online (Sandbox Code Playgroud)
一切正常.但是当存在不存在的id时,我会得到一个例外.当我获得与某些过滤器匹配的ID列表时,通常会发生这种情况
current_user.comments.find(ids)
Run Code Online (Sandbox Code Playgroud)
这次我可能有一个有效的评论ID,但不属于给定的用户,所以找不到它,我得到一个例外.
我试过了find(:all, ids),但它返回了所有记录.
我现在能做到的唯一方法是
current_user.comments.select { |c| ids.include?(c.id) }
Run Code Online (Sandbox Code Playgroud)
但在我看来,这似乎是超低效的解决方案.
有没有更好的方法在Array中选择ID而不会在不存在的记录上获得异常?
我在Array文档中遗漏了什么吗?我有一个数组,其中包含最多一个满足某个标准的对象.我想有效地找到那个对象.我从文档中得到的最好的想法是这样的:
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
Run Code Online (Sandbox Code Playgroud)
但我不满意的原因有两个:(1)选择让我遍历整个阵列,即使我们可以在第一次击中后保释,并且(2)我需要一行代码(有条件)来压缩候选人.这两个操作都是浪费,预知有0或1个令人满意的对象.
我想要的是:
select - >回答nil或块评估为true的第一个对象,结束该对象的遍历.
我必须自己写这个吗?在Array中所有其他优秀的方法让我觉得它就在那里,我只是没有看到它.
提前谢谢,丹
find . -type f -print
Run Code Online (Sandbox Code Playgroud)
打印出来
./file1
./file2
./file3
Run Code Online (Sandbox Code Playgroud)
任何方式使其打印
file1
file2
file3
Run Code Online (Sandbox Code Playgroud)
?
我是shell脚本的新手,有人可以帮忙吗?我想删除文件夹中的脚本,从当前日期回到10天.脚本如下:
2012.11.21.09_33_52.script
2012.11.21.09_33_56.script
2012.11.21.09_33_59.script
Run Code Online (Sandbox Code Playgroud)
该脚本将每隔10天与Crontab一起运行,这就是我需要当前日期的原因.
我正在尝试查找页面上元素ID包含特定文本的所有元素.然后,我需要根据它们是否隐藏来过滤找到的元素.任何帮助是极大的赞赏.
我想使用"findall"方法在ElementTree模块中找到源xml文件的一些元素.
但是,源xml文件(test.xml)具有命名空间.我将部分xml文件截断为样本:
<?xml version="1.0" encoding="iso-8859-1"?>
<XML_HEADER xmlns="http://www.test.com">
<TYPE>Updates</TYPE>
<DATE>9/26/2012 10:30:34 AM</DATE>
<COPYRIGHT_NOTICE>All Rights Reserved.</COPYRIGHT_NOTICE>
<LICENSE>newlicense.htm</LICENSE>
<DEAL_LEVEL>
<PAID_OFF>N</PAID_OFF>
</DEAL_LEVEL>
</XML_HEADER>
Run Code Online (Sandbox Code Playgroud)
示例python代码如下:
from xml.etree import ElementTree as ET
tree = ET.parse(r"test.xml")
el1 = tree.findall("DEAL_LEVEL/PAID_OFF") # Return None
el2 = tree.findall("{http://www.test.com}DEAL_LEVEL/{http://www.test.com}PAID_OFF") # Return <Element '{http://www.test.com}DEAL_LEVEL/PAID_OFF' at 0xb78b90>
Run Code Online (Sandbox Code Playgroud)
虽然它可以工作,因为有一个名称空间"{http://www.test.com}",在每个标记前面添加一个名称空间是非常不方便的.
使用"find","findall"等方法时,如何忽略命名空间?
有办法find and replace text string automatically in all folder's files吗?
为什么以下不将文件复制到目标文件夹?
# find /home/shantanu/processed/ -name '*2011*.xml' -exec cp /home/shantanu/tosend {} \;
cp: omitting directory `/home/shantanu/tosend'
cp: omitting directory `/home/shantanu/tosend'
cp: omitting directory `/home/shantanu/tosend'
Run Code Online (Sandbox Code Playgroud) find ×10
unix ×3
activerecord ×1
arrays ×1
bash ×1
collections ×1
copy ×1
elementtree ×1
filter ×1
findall ×1
global ×1
ide ×1
jquery ×1
linux ×1
mongodb ×1
namespaces ×1
performance ×1
python ×1
replace ×1
ruby ×1
search ×1
shell ×1
strip ×1
sublimetext2 ×1
wildcard ×1