我们最近将一些数据移植到MongoDB,现在正在考虑运行每日备份,最好是从cron作业,并将其中一个备份恢复到辅助mongo数据库.
我们的系统设置如下:
有三个服务器:服务器1有开发mongo数据库,服务器2有两个mongo数据库,一个用于登台数据,一个用于生产,第三个服务器是我们运行所有cron作业/批处理脚本的地方.
我检查了mongo文档,并登录到我们的cron作业服务器并尝试运行以下命令:(为了安全性,我更改了用户名,主机和密码,我实际上并没有连接到localhost)
mongodump --host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1
Run Code Online (Sandbox Code Playgroud)
我收到以下消息:
星期一10月7日10:03:42开始新副本集监视器副本集127.0.0.1与种子开发:27017
星期一10月7日10:03:42成功连接到种子开发:27017 for replica set 127.0.0.1
Mon Oct 7 10 :03:42警告:节点:开发:27017不是set的一部分:127.0.0.1 ismaster:{ismaster:true,maxBsonObjectSize:16777216,ok:1.0}
Mon Oct 7 10:03:44 replica set monitor for replica设置127.0.0.1开始,地址是127.0.0.1/
星期一10月7日10:03:44 [ReplicaSetMonitorWatcher]启动无法连接到[127.0.0.1/development:27017]连接失败设置127.0.0.1/development:27017
我确认我可以使用连接到mongo数据库 mongo -u -p ip/development
我们的最终目标是从生产数据库转储数据并将其存储在临时数据库中.这两个数据库都位于同一个框中,如果这有所不同,但出于测试目的,我只是试图获得开发测试数据的备份.
我正在开发一个 Web 应用程序项目,并且有一个相当大的 html 表单需要将其数据存储在表中。表单和插入已经完成,但我的客户希望能够将保存的数据加载回 HTML 表单并能够更改它,同样,这没问题,但是我在进行更新时遇到了一个问题,如果它是一个编辑,只保留插入查询然后删除旧行是否合适?
基本上,已经发生的事情是,当提交表单时,所有数据都使用 INSERT 放入表中,如果数据用于正在更新的现有字段,我还有一个名为 edit 的标志,其中包含主键 ID。我可以通过两种方式处理更新功能:
a) 创建一个包含所有字段/数据集的实际更新查询,并使用 if/else 来决定是运行更新查询还是插入查询。
b) 每次都执行插入,但在插入成功后在 DELETE WHERE row=editID 中添加一行。
由于删除只会在插入成功时发生,我不会冒不插入就删除数据的风险,从而丢失数据,但由于插入/删除是两个查询,它会比仅使用 if/ 效率低吗? else 来决定是运行插入还是更新?
有第二个表使用自增 id 作为外键,但是每次提交表单时都必须更新该表,因此如果我删除表 A 中的行,我也会从其中删除关联的行表 b. 这似乎是一种糟糕的编程实践,所以无论如何我都倾向于选项 a),但仅使用单行选项非常诱人。DELETE 基本上如下。这实际上是不好的编程习惯吗?除了惯例之外,还有什么理由说明“永远不要那样做!” 代码类型?
if ($insertFormResults) {
$formId = mysql_insert_id();
echo "Your form was saved successfully.";
if(isset($_POST['edit'])){
$query = "DELETE FROM registerForm WHERE id='$_POST[edit]'";
$result = mysql_query($query);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个表使用其中一个字段的SET数据类型,并检查该字段是否包含我使用的特定元素
SELECT * FROM table WHERE myset LIKE %value%;
Run Code Online (Sandbox Code Playgroud)
这大部分时间都有效,但是两个潜在的值具有相同的单词,即集合中的一个可能元素是Poodle,另一个是玩具贵宾犬.如果我做
SELECT * FROM table WHERE myset LIKE %Poodle%;
Run Code Online (Sandbox Code Playgroud)
它返回所有具有Poodle或Toy Poodle的行.如果该字段包含Poodle,我希望它只返回.如果我删除通配符,那么它将只返回只有Poodle的行.所以基本上,如果表是:
id | myset
-------------------------
1 | "Poodle"
2 | "Toy Poodle"
3 | "Poodle","Toy Poodle"
4 | "Toy Poodle","Poodle"
Run Code Online (Sandbox Code Playgroud)
我需要一个返回1,3和4而不是2的select语句.这可能吗?
我们将Moodle添加到我们的站点(不同的服务器,不同的子域,但是相同的主域,并且服务器设置为能够彼此通信),我们想要它做的是:
我们已经使用db auth(外部数据库身份验证)进行了设置,因此主站点的帐户也适用于Moodle,我只是不知道如何让Moodle接受现有凭据并自动登录用户.
所以我创建了一个基本的应用程序,我希望在屏幕底部有一个JLabel,从左下角开始,动画样式,在设定的时间内移动到右下角,中心的静态图像.为此,我使用BorderLayout创建了一个带JPanel的JFrame.有一个JLabel,其中ImageIcon添加到BorderLayout.CENTER,而一个JPanel添加到BorderLayout.SOUTH.我的代码虽然草率而且非常漂亮,但是:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
import javax.swing.BorderFactory;
public class GameWindow extends JPanel{
private static JLabel mainWindow, arrowLabel, arrowBox;
protected static JFrame frame;
protected static JPanel arrows;
public static int x = 600;
public GameWindow(){
mainWindow = new JLabel("Center");
arrowLabel = new JLabel("Moving");
arrows = new JPanel();
arrows.setSize(600, 100);
arrows.setLayout(null);
arrowBox = new JLabel("");
arrowBox.setBounds(0, 0, 150, 100);
arrowBox.setPreferredSize(new Dimension(150, 100));
arrowBox.setBorder(BorderFactory.createLineBorder(Color.black));
arrows.add(arrowBox);
this.setSize(600,600);
this.setLayout(new BorderLayout());
this.add(mainWindow, …Run Code Online (Sandbox Code Playgroud) 我正在使用PyDrive在Google云端硬盘中创建文件,但是在使用实际的Google Doc类型项目时遇到了麻烦。
我的代码是:
file = drive.CreateFile({'title': pagename,
"parents": [{"id": folder_id}],
"mimeType": "application/vnd.google-apps.document"})
file.SetContentString("Hello World")
file.Upload()
Run Code Online (Sandbox Code Playgroud)
如果我将mimetype更改text/plain为,则可以正常工作,但这样会给我错误:
引发ApiRequestError(错误)pydrive.files.ApiRequestError:https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&alt=json返回“提供了无效的mime类型“>
如果我保持MimeType不变,但删除对SetContentString的调用,它也可以正常工作,因此看来这两种情况不能很好地配合使用。
创建Google文档和设置内容的正确方法是什么?
我正在尝试创建一个新的电子表格,据我了解,现在可以在API的v4中使用它,但是在PHP文档中没有看到任何有关如何创建工作表的详细信息。我有:
$client->setApplicationName("Test");
$client->setScopes(['https://www.googleapis.com/auth/sheets']);
$service = new Google_Service_Sheets($client);
$service->spreadsheets->create();
Run Code Online (Sandbox Code Playgroud)
但是它期望参数1是Google_Service_Sheets_Spreadsheet的实例,并且我不确定应该提供什么。
我正在制作一个基本的Java应用程序并尝试旋转图像.我写了以下快速方法
private Image rotate(double degs){
ImageIcon img = new ImageIcon("src/inc/img/char_male.png");
Image temp = new BufferedImage(img.getIconWidth(), img.getIconHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) temp.getGraphics();
g2.rotate(Math.toRadians(degs));
g2.drawImage(img.getImage(), 0, 0, Color.WHITE, null);
System.out.println("Rotating "+degs);
g2.dispose();
return temp;
}
Run Code Online (Sandbox Code Playgroud)
问题是当我运行它并重新绘制GUI时,图像变为纯黑色.我是否在创建BufferedImage时出错?我正在使用JLabel更改重绘中的GUI,
label.setIcon(new ImageIcon(rotate(90)));
Run Code Online (Sandbox Code Playgroud)