我有很多关系,TrainingPrograms可以包含很多练习.它们是通过可链接的ExercisesTrainingPrograms链接的.
我想从练习中选择某些字段:
$trainingPrograms = $this->TrainingPrograms->find()
->contain(['Exercises' => function ($q) {
return $q
->select(['id','name','description']);
}
])
->select(['id','name','description'])
->where(['user_id' => $this->Auth->user('id')]);
Run Code Online (Sandbox Code Playgroud)
结果我看起来像这样:
"trainingPrograms": [
{
"id": 1,
"name": "Monday Madness",
"description": "hes",
"exercises": [
{
"id": 2,
"name": "Barbell Bench Press",
"description": "Medium grip ",
"exercise_categories_id": 2,
"exercise_difficulties_id": 1,
"created": "2015-09-16T07:07:01+0000",
"modified": "2015-09-16T07:07:01+0000",
"_joinData": {
"exercise_id": 2,
"id": 28,
"training_program_id": 1,
"created": "2015-10-07T15:45:49+0000"
}
},
{
"id": 2,
"name": "Barbell Bench Press",
"description": "Medium grip ",
"exercise_categories_id": 2,
"exercise_difficulties_id": 1,
"created": "2015-09-16T07:07:01+0000", …Run Code Online (Sandbox Code Playgroud) 我在Python 2.7中编写了一个代码,我在其中定义了一个字符串列表.然后,我想要搜索此列表的元素以获取一组字母.这些字母必须是随机的.即从输入中搜索每个字母的列表.我一直在谷歌,但我还没有找到解决方案.
这是我得到的:
wordlist = ['mississippi','miss','lake','que']
letters = str(aqk)
for item in wordlist:
if item.find(letters) != -1:
print item
Run Code Online (Sandbox Code Playgroud)
这是一个例子.这里唯一的输出应该是'lake'和'que',因为这些单词包含'a','q'和'k'.如何重写我的代码以便完成此操作?
提前致谢!
亚历克斯
有没有办法删除整行,如果它包含使用sed的特定单词?即我有以下内容:
aaa bbb ccc
qqq fff yyy
噢rr ttt
kkk ccc www
我想删除包含'ccc'的行并保留其他行不变.在此示例中,输出将是:
qqq fff yyy
噢rr ttt
这一切都使用sed.任何提示?
我正在尝试查询我的mongodb集合之一,如下所示:
> db.collection.find()
{name: "foo", things: [{stuff:"banana", value: 1}, {stuff:"apple", value: 2}, {stuff:"strawberry", value: 3}]}
{name: "bar", things: [{stuff:"banana", value: 4}, {stuff:"pear", value: 5}]}
...
Run Code Online (Sandbox Code Playgroud)
我的目标是列出所有things包含元素stuff=banana但不包含元素的对象stuff=apple
我试过这样的事情:
db.transactions.find({
"things": {
$elemMatch: {
"stuff": "banana",
$ne: {
"stuff": "apple"
}
}
}
)
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有任何想法吗?
有谁能解释一下?我有一个带有字符串的arrayList.我正在使用!arraylist.contain以确保我不添加重复项.在下面的代码中,我显示了arraylist中的所有内容,然后检查arraylist中是否存在相同的值!arraylist.contain
public ArrayList<String> getIsiXhosaRecordings(ArrayList<String> must_download, ArrayList<String> all_filenames)
{
database = getReadableDatabase();
for(int x = 0; x < all_filenames.size(); x++)
{
System.out.println("All files: >>>"+all_filenames.get(x)+"<<<");
}
String[] table_names = {"Voice_exercise", "Lesson_exercise"};
for(int x = 0; x < table_names.length; x++)
{
String SQL = "SELECT * FROM "+table_names[x];
Cursor cursor = database.rawQuery(SQL, null);
while(cursor.moveToNext())
{
String audio_isixhosa = cursor.getString(cursor.getColumnIndex("audio_isixhosa"));
if(!all_filenames.contains(audio_isixhosa));
{
System.out.println("Audio file: >>>"+audio_isixhosa+"<<<");
}
}
}
return must_download;
}
Run Code Online (Sandbox Code Playgroud)
和logcat:
09-04 15:30:40.188: D/dalvikvm(14202): GC_CONCURRENT freed 65K, 9% free 9852K/10759K, paused 2ms+2ms, …Run Code Online (Sandbox Code Playgroud) 我有两个模型,分别命名为 Post 和 Comment,它们由 Post hasMany Comment 和 Comment ownsTo Post 链接。我想获取所有帖子的前五个评论。我会使用这个代码:
$this->Posts->find('all')
->contain([
'Comments' => function($q) {
return $q
->order('created ASC')
->limit(5);
}
]);
Run Code Online (Sandbox Code Playgroud)
这与 limit() 一起工作不正确。请帮助解决这个问题。我使用了这个例子: 如何限制每个记录/组包含的关联? 我试着喜欢这个(在 Post 模型中):
$this->hasOne('TopComments', [
'className' => 'Comments',
'strategy' => 'select',
'conditions' => function (\Cake\Database\Expression\QueryExpression $exp, \Cake\ORM\Query $query) {
$query->leftJoin(
['CommentsFilter' => 'comments'],
[
'TopComments.post_id = CommentsFilter.post_id',
'TopComments.created < CommentsFilter.created'
]);
return $exp->add(['CommentsFilter.id IS NULL']);
}
]);
Run Code Online (Sandbox Code Playgroud)
在邮政控制器中:
$this->Posts->find('all')
->contain([
'TopComments' => function($q) {
return $q
->order('TopComments.created ASC')
->limit(5);
}
]); …Run Code Online (Sandbox Code Playgroud) 我需要确保某个长值不在数组中.但由于某种原因,这不起作用......
!d.toString().contains(sq.toString());
Run Code Online (Sandbox Code Playgroud)
我确信我得到了一些真正倒退的东西......但我无法弄清楚是什么!
我试图通过运算符数组来查看其中一个运算符是否位于String中.
例如:
String[] OPERATORS = { "<", "<=", ... };
String line = "a <= b < c ";
Run Code Online (Sandbox Code Playgroud)
我将如何通过循环检查运算符是否在字符串中?
另外,假设我的方法发现"<"位于字符串" < ="
但是,我正在寻找实际的字符串" <= ".我该怎么做呢?
我想找到(在VS C#中)一个字符串是否包含一个没有立即重复的字符(例如'%').
例如"我有%单独,这很好=> %%".我想找到任何包含单个'%'(甚至几次)的字符串,而不管相邻的"%%"出现次数.
下面将显然是不行的,并给true为foo2:
string foo1="% I want to find this string";
string foo2="I don't want to find this string because the char %% is not alone";
string foo3="I%want%to%find%this%as%well!"
if(line.Contains("%")){}
Run Code Online (Sandbox Code Playgroud)
我试图了解如何在这里应用正则表达式.
我有:
> lst_A <- c("TET","RNR")
> DT_result <- data.table(lst_B = c("RNR_B","BC_TET"))
Run Code Online (Sandbox Code Playgroud)
我想要:
> DT_result <- data.table(lst_B = c("RNR_B","BC_TET"), result = c(TRUE,TRUE))
> DT_result
lst_B result
1: RNR_B TRUE
2: BC_TET TRUE
Run Code Online (Sandbox Code Playgroud)
基本上,对于'lst_B'中的每个元素,如果它包含'lst_A'中的任何元素,则TRUE否则为FALSE.