如何在DB中检查模型的存在?在Yii 1版本中它是如此
User::model()->exist()
如何根据我的条件更新所有记录?(我的代码不起作用)
$condition[] = ['>', 'position', $old_position];
$condition[] = ['<=', 'position', $new_position];
$condition[] = ['in', 'id', $ids];
Video::updateAll([
'position' => new \yii\db\Expression('@a := @a + 1'),
], $condition);
Run Code Online (Sandbox Code Playgroud) 我在mongo中保存IP
$db = new MongoClient();
$db->selectCollection('test', 'test')->insert([
'ip'=> new MongoBinData(inet_pton('127.0.0.1'), MongoBinData::BYTE_ARRAY),
]);
Run Code Online (Sandbox Code Playgroud)
蒙戈贝壳
> db.test.find()
{ "_id" : ObjectId("54e1aeeb84663f3407000030"), "ip" : BinData(2,"BAAAAH8AAAE=") }
Run Code Online (Sandbox Code Playgroud)
如何在mongo shell中获取初始数据?
我有shell命令生成的文件
- stat: path=/etc/swift/account.ring.gz get_md5=yes
register: account_builder_stat
- name: write account.ring.gz file
shell: swift-ring-builder account.builder write_ring <--- rewrite account.ring.gz
chdir=/etc/swift
changed_when: ??? account_builder_stat.changed ??? <-- no give desired effect
Run Code Online (Sandbox Code Playgroud)
如何检查文件是否已更改?
是否可以使用 PhpDoc 声明protected或private类@property?
/**
* Class Node
* @package app\models
* @property string $name
*/
class Node
{
}
Run Code Online (Sandbox Code Playgroud) 我有工厂
class DocumentManagerFactory
{
....
public function createDocumentManager(): DocumentManager
{
return DocumentManager::create($this->client, $this->configuration);
}
}
Run Code Online (Sandbox Code Playgroud)
我想嘲笑DocumentManager返回的createDocumentManager
$dmStub = $this->createMock(DocumentManager::class)
->method('refresh')
->willReturnArgument(1);
$dmFactoryStub = $this->createMock(DocumentManagerFactory::class)
->method('createDocumentManager')
->willReturn($dm);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
方法 createDocumentManager 可能不会返回 PHPUnit\Framework\MockObject\Builder\InitationMocker 类型的值,其返回声明为“: Doctrine\ODM\MongoDB\DocumentManager”
是否可以?
我需要像 TinyPNG 一样压缩图像并将压缩图像保存在 dist 文件夹中。我使用 webpack 4 并找到了 imagemin-webpack。但我不明白有什么用:插件还是加载器?请帮助为此任务进行配置。
let path = require('path');
let ExtractTextPlugin = require("extract-text-webpack-plugin");
let {imageminLoader} = require("imagemin-webpack");
let imageminGifsicle = require("imagemin-gifsicle");
let conf = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, './dist/'),
filename: 'main.js',
publicPath: 'dist/'
},
module: {
rules: [
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: [
{
loader: "css-loader",
options: {
minimize: true,
sourceMap: true
}
}
]
})
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
use: [
{
loader: "file-loader"
},
{
loader: imageminLoader, …Run Code Online (Sandbox Code Playgroud) 当我将 spring shell 添加到项目中时
<dependency>
<groupId>org.springframework.shell</groupId>
<artifactId>spring-shell-starter</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
测试开始挂起并且永远不会结束。停止后我在日志中看到
2020-02-22 20:00:14.271 INFO 9812 --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService 'taskScheduler'
2020-02-22 20:00:14.933 WARN 9812 --- [ main] org.jline : Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)
2020-02-22 20:00:15.229 INFO 9812 --- [ main] o.s.a.r.c.CachingConnectionFactory : Attempting to connect to: [192.168.1.10:5672]
2020-02-22 20:00:15.312 INFO 9812 --- [ main] o.s.a.r.c.CachingConnectionFactory : Created new connection: rabbitConnectionFactory#4c32d208:0/SimpleConnection@608c36a6 [delegate=amqp://admin@192.168.1.10:5672/, localPort= 65404]
2020-02-22 20:00:15.401 INFO …Run Code Online (Sandbox Code Playgroud) 我想通过User.id和Address.user_id列在两个模型之间建立关系。
我创建了两个具有一对一关系的表:
\n\n@Entity()\n@Table(name = "user")\npublic class User {\n @Id\n @GeneratedValue(strategy = GenerationType.IDENTITY)\n private Integer id;\n\n @OneToOne(cascade = CascadeType.ALL)\n @JoinColumn(name = "id", referencedColumnName = "user_id")\n private Address address;\n\n public int getId() {\n return id;\n }\n\n public void setId(Integer id) {\n this.id = id;\n }\n\n public Address getAddress() {\n return address;\n }\n\n public void setAddress(Address address) {\n this.address = address;\n }\n\n}\n\n\n\n@Entity\n@Table(name = "address")\npublic class Address extends com.mezoline.domain.common.Entity {\n\n @Id\n @GeneratedValue\n private int id;\n\n @OneToOne(mappedBy = "address")\n …Run Code Online (Sandbox Code Playgroud) 我有2个日期字段:date_start和date_end
$criteria = [
'_id'=>$data->thread,
'download_id'=>$data->id,
'ip'=>new MongoInt32(Helper::aton($data->remote_addr)),
];
$status = $nodeThreadsCollection->update($criteria,
[
'$set'=>[
'disconnected'=>(bool)$data->disconnected,
'date_end'=>new MongoDate(),
],
'$inc'=>[
'bytes_send'=>new MongoInt64($data->bytes_send),
]
],[
'upsert'=>true,
'w'=>1,
]
);
if(isset($status['updatedExisting']) && !$status['updatedExisting']) {
$nodeThreadsCollection->update($criteria,
[
'$set'=>[
'date_start'=>new MongoDate(),
],
],[
'w'=>0,
]
);
}
Run Code Online (Sandbox Code Playgroud)
但它需要writeConcern = 1来获取插入状态并进行二次查询.如何在一个查询中创建它?