可以的
This commit is contained in:
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
/runtime
|
||||
/.idea
|
||||
/.vscode
|
||||
/vendor
|
||||
*.log
|
||||
.env
|
||||
/tests/tmp
|
||||
/tests/.phpunit.result.cache
|
||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 walkor<walkor@workerman.net> and contributors (see https://github.com/walkor/webman/contributors)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
11
MCP/mcp.json
Normal file
11
MCP/mcp.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"mcpServers": {
|
||||
"MongoDB": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
|
||||
"env": {
|
||||
"MDB_MCP_CONNECTION_STRING": "mongodb://ckb:123456@192.168.1.106:27017/ckb"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
15
MCP/数据库账户密码.md
Normal file
15
MCP/数据库账户密码.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# 账户密码
|
||||
```
|
||||
HOST 192.168.1.106
|
||||
PORT 27017
|
||||
ACCOUNT:ckb
|
||||
DBNAME:ckb
|
||||
PASSWROD:123456
|
||||
```
|
||||
|
||||
==================
|
||||
# 环境准备
|
||||
需要安装一个全局环境否则无法运行
|
||||
node版本为22.12.0
|
||||
|
||||
npm i mongodb-mcp-server -g
|
||||
85
README.md
85
README.md
@@ -1,37 +1,70 @@
|
||||
# 数据中心
|
||||
<div style="padding:18px;max-width: 1024px;margin:0 auto;background-color:#fff;color:#333">
|
||||
<h1>webman</h1>
|
||||
|
||||
#### 介绍
|
||||
Serverruntime
|
||||
|
||||
#### 软件架构
|
||||
软件架构说明
|
||||
基于<a href="https://www.workerman.net" target="__blank">workerman</a>开发的超高性能PHP框架
|
||||
|
||||
|
||||
#### 安装教程
|
||||
<h1>学习</h1>
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://www.workerman.net/webman" target="__blank">主页 / Home page</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://webman.workerman.net" target="__blank">文档 / Document</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.workerman.net/doc/webman/install.html" target="__blank">安装 / Install</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.workerman.net/questions" target="__blank">问答 / Questions</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.workerman.net/apps" target="__blank">市场 / Apps</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.workerman.net/sponsor" target="__blank">赞助 / Sponsors</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.workerman.net/doc/webman/thanks.html" target="__blank">致谢 / Thanks</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
#### 使用说明
|
||||
<div style="float:left;padding-bottom:30px;">
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
<h1>赞助商</h1>
|
||||
|
||||
#### 参与贡献
|
||||
<h4>特别赞助</h4>
|
||||
<a href="https://www.crmeb.com/?form=workerman" target="__blank">
|
||||
<img src="https://www.workerman.net/img/sponsors/6429/20230719111500.svg" width="200">
|
||||
</a>
|
||||
|
||||
1. Fork 本仓库
|
||||
2. 新建 Feat_xxx 分支
|
||||
3. 提交代码
|
||||
4. 新建 Pull Request
|
||||
<h4>铂金赞助</h4>
|
||||
<a href="https://www.fadetask.com/?from=workerman" target="__blank"><img src="https://www.workerman.net/img/sponsors/1/20230719084316.png" width="200"></a>
|
||||
<a href="https://www.yilianyun.net/?from=workerman" target="__blank" style="margin-left:20px;"><img src="https://www.workerman.net/img/sponsors/6218/20230720114049.png" width="200"></a>
|
||||
|
||||
|
||||
#### 特技
|
||||
</div>
|
||||
|
||||
|
||||
<div style="float:left;padding-bottom:30px;clear:both">
|
||||
|
||||
<h1>请作者喝咖啡</h1>
|
||||
|
||||
<img src="https://www.workerman.net/img/wx_donate.png" width="200">
|
||||
<img src="https://www.workerman.net/img/ali_donate.png" width="200">
|
||||
<br>
|
||||
<b>如果您觉得webman对您有所帮助,欢迎捐赠。</b>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div style="clear: both">
|
||||
<h1>LICENSE</h1>
|
||||
The webman is open-sourced software licensed under the MIT.
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
||||
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
|
||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
|
||||
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
|
||||
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
||||
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||
|
||||
24
app/controller/IndexController.php
Normal file
24
app/controller/IndexController.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace app\controller;
|
||||
|
||||
use support\Request;
|
||||
|
||||
class IndexController
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
return "我是数据中心,有何贵干?";
|
||||
}
|
||||
|
||||
public function view(Request $request)
|
||||
{
|
||||
return view('index/view', ['name' => 'webman']);
|
||||
}
|
||||
|
||||
public function json(Request $request)
|
||||
{
|
||||
return json(['code' => 0, 'msg' => 'ok']);
|
||||
}
|
||||
|
||||
}
|
||||
16
app/controller/UserController.php
Normal file
16
app/controller/UserController.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
namespace app\controller;
|
||||
|
||||
use support\Request;
|
||||
|
||||
class UserController
|
||||
{
|
||||
public function hello(Request $request)
|
||||
{
|
||||
$default_name = 'webman';
|
||||
// 从get请求里获得name参数,如果没有传递name参数则返回$default_name
|
||||
$name = $request->get('name', $default_name);
|
||||
// 向浏览器返回字符串
|
||||
return response('hello ' . $name);
|
||||
}
|
||||
}
|
||||
4
app/functions.php
Normal file
4
app/functions.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
/**
|
||||
* Here is your custom functions.
|
||||
*/
|
||||
42
app/middleware/StaticFile.php
Normal file
42
app/middleware/StaticFile.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
namespace app\middleware;
|
||||
|
||||
use Webman\MiddlewareInterface;
|
||||
use Webman\Http\Response;
|
||||
use Webman\Http\Request;
|
||||
|
||||
/**
|
||||
* Class StaticFile
|
||||
* @package app\middleware
|
||||
*/
|
||||
class StaticFile implements MiddlewareInterface
|
||||
{
|
||||
public function process(Request $request, callable $handler): Response
|
||||
{
|
||||
// Access to files beginning with. Is prohibited
|
||||
if (strpos($request->path(), '/.') !== false) {
|
||||
return response('<h1>403 forbidden</h1>', 403);
|
||||
}
|
||||
/** @var Response $response */
|
||||
$response = $handler($request);
|
||||
// Add cross domain HTTP header
|
||||
/*$response->withHeaders([
|
||||
'Access-Control-Allow-Origin' => '*',
|
||||
'Access-Control-Allow-Credentials' => 'true',
|
||||
]);*/
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
29
app/model/Test.php
Normal file
29
app/model/Test.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace app\model;
|
||||
|
||||
use support\Model;
|
||||
|
||||
class Test extends Model
|
||||
{
|
||||
/**
|
||||
* The table associated with the model.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $table = 'test';
|
||||
|
||||
/**
|
||||
* The primary key associated with the table.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $primaryKey = 'id';
|
||||
|
||||
/**
|
||||
* Indicates if the model should be timestamped.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
public $timestamps = false;
|
||||
}
|
||||
37
app/model/User.php
Normal file
37
app/model/User.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
// app/model/User.php
|
||||
namespace app\model;
|
||||
|
||||
use MongoDB\Laravel\Eloquent\Model;
|
||||
use MongoDB\Laravel\Relations\HasMany; // 若需关联查询(可选)
|
||||
|
||||
class User extends Model
|
||||
{
|
||||
// 对应 MongoDB 集合名(默认复数,可自定义)
|
||||
protected $collection = 'users';
|
||||
|
||||
// 主键(MongoDB 默认 _id,无需修改,自动转为字符串)
|
||||
protected $primaryKey = '_id';
|
||||
|
||||
// 主键类型(官方推荐显式声明)
|
||||
protected $keyType = 'string';
|
||||
|
||||
// 允许批量赋值的字段(白名单)
|
||||
protected $fillable = ['name', 'age', 'email', 'avatar'];
|
||||
|
||||
// 自动转换字段类型(ObjectId 转字符串、日期转 Carbon)
|
||||
protected $casts = [
|
||||
'_id' => 'string',
|
||||
'age' => 'integer',
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
'tags' => 'array', // 支持数组类型(MongoDB 原生支持数组)
|
||||
];
|
||||
|
||||
// 自动维护时间戳(created_at/updated_at,默认启用)
|
||||
// 若不需要可关闭:public $timestamps = false;
|
||||
|
||||
// 自定义时间戳字段名(可选)
|
||||
// const CREATED_AT = 'create_time';
|
||||
// const UPDATED_AT = 'update_time';
|
||||
}
|
||||
10
app/process/Http.php
Normal file
10
app/process/Http.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace app\process;
|
||||
|
||||
use Webman\App;
|
||||
|
||||
class Http extends App
|
||||
{
|
||||
|
||||
}
|
||||
305
app/process/Monitor.php
Normal file
305
app/process/Monitor.php
Normal file
@@ -0,0 +1,305 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
namespace app\process;
|
||||
|
||||
use FilesystemIterator;
|
||||
use RecursiveDirectoryIterator;
|
||||
use RecursiveIteratorIterator;
|
||||
use SplFileInfo;
|
||||
use Workerman\Timer;
|
||||
use Workerman\Worker;
|
||||
|
||||
/**
|
||||
* Class FileMonitor
|
||||
* @package process
|
||||
*/
|
||||
class Monitor
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected array $paths = [];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected array $extensions = [];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected array $loadedFiles = [];
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected int $ppid = 0;
|
||||
|
||||
/**
|
||||
* Pause monitor
|
||||
* @return void
|
||||
*/
|
||||
public static function pause(): void
|
||||
{
|
||||
file_put_contents(static::lockFile(), time());
|
||||
}
|
||||
|
||||
/**
|
||||
* Resume monitor
|
||||
* @return void
|
||||
*/
|
||||
public static function resume(): void
|
||||
{
|
||||
clearstatcache();
|
||||
if (is_file(static::lockFile())) {
|
||||
unlink(static::lockFile());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether monitor is paused
|
||||
* @return bool
|
||||
*/
|
||||
public static function isPaused(): bool
|
||||
{
|
||||
clearstatcache();
|
||||
return file_exists(static::lockFile());
|
||||
}
|
||||
|
||||
/**
|
||||
* Lock file
|
||||
* @return string
|
||||
*/
|
||||
protected static function lockFile(): string
|
||||
{
|
||||
return runtime_path('monitor.lock');
|
||||
}
|
||||
|
||||
/**
|
||||
* FileMonitor constructor.
|
||||
* @param $monitorDir
|
||||
* @param $monitorExtensions
|
||||
* @param array $options
|
||||
*/
|
||||
public function __construct($monitorDir, $monitorExtensions, array $options = [])
|
||||
{
|
||||
$this->ppid = function_exists('posix_getppid') ? posix_getppid() : 0;
|
||||
static::resume();
|
||||
$this->paths = (array)$monitorDir;
|
||||
$this->extensions = $monitorExtensions;
|
||||
foreach (get_included_files() as $index => $file) {
|
||||
$this->loadedFiles[$file] = $index;
|
||||
if (strpos($file, 'webman-framework/src/support/App.php')) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!Worker::getAllWorkers()) {
|
||||
return;
|
||||
}
|
||||
$disableFunctions = explode(',', ini_get('disable_functions'));
|
||||
if (in_array('exec', $disableFunctions, true)) {
|
||||
echo "\nMonitor file change turned off because exec() has been disabled by disable_functions setting in " . PHP_CONFIG_FILE_PATH . "/php.ini\n";
|
||||
} else {
|
||||
if ($options['enable_file_monitor'] ?? true) {
|
||||
Timer::add(1, function () {
|
||||
$this->checkAllFilesChange();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
$memoryLimit = $this->getMemoryLimit($options['memory_limit'] ?? null);
|
||||
if ($memoryLimit && ($options['enable_memory_monitor'] ?? true)) {
|
||||
Timer::add(60, [$this, 'checkMemory'], [$memoryLimit]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $monitorDir
|
||||
* @return bool
|
||||
*/
|
||||
public function checkFilesChange($monitorDir): bool
|
||||
{
|
||||
static $lastMtime, $tooManyFilesCheck;
|
||||
if (!$lastMtime) {
|
||||
$lastMtime = time();
|
||||
}
|
||||
clearstatcache();
|
||||
if (!is_dir($monitorDir)) {
|
||||
if (!is_file($monitorDir)) {
|
||||
return false;
|
||||
}
|
||||
$iterator = [new SplFileInfo($monitorDir)];
|
||||
} else {
|
||||
// recursive traversal directory
|
||||
$dirIterator = new RecursiveDirectoryIterator($monitorDir, FilesystemIterator::SKIP_DOTS | FilesystemIterator::FOLLOW_SYMLINKS);
|
||||
$iterator = new RecursiveIteratorIterator($dirIterator);
|
||||
}
|
||||
$count = 0;
|
||||
foreach ($iterator as $file) {
|
||||
$count ++;
|
||||
/** var SplFileInfo $file */
|
||||
if (is_dir($file->getRealPath())) {
|
||||
continue;
|
||||
}
|
||||
// check mtime
|
||||
if (in_array($file->getExtension(), $this->extensions, true) && $lastMtime < $file->getMTime()) {
|
||||
$lastMtime = $file->getMTime();
|
||||
if (DIRECTORY_SEPARATOR === '/' && isset($this->loadedFiles[$file->getRealPath()])) {
|
||||
echo "$file updated but cannot be reloaded because only auto-loaded files support reload.\n";
|
||||
continue;
|
||||
}
|
||||
$var = 0;
|
||||
exec('"'.PHP_BINARY . '" -l ' . $file, $out, $var);
|
||||
if ($var) {
|
||||
continue;
|
||||
}
|
||||
// send SIGUSR1 signal to master process for reload
|
||||
if (DIRECTORY_SEPARATOR === '/') {
|
||||
if ($masterPid = $this->getMasterPid()) {
|
||||
echo $file . " updated and reload\n";
|
||||
posix_kill($masterPid, SIGUSR1);
|
||||
} else {
|
||||
echo "Master process has gone away and can not reload\n";
|
||||
}
|
||||
return true;
|
||||
}
|
||||
echo $file . " updated and reload\n";
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!$tooManyFilesCheck && $count > 1000) {
|
||||
echo "Monitor: There are too many files ($count files) in $monitorDir which makes file monitoring very slow\n";
|
||||
$tooManyFilesCheck = 1;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getMasterPid(): int
|
||||
{
|
||||
if ($this->ppid === 0) {
|
||||
return 0;
|
||||
}
|
||||
if (function_exists('posix_kill') && !posix_kill($this->ppid, 0)) {
|
||||
echo "Master process has gone away\n";
|
||||
return $this->ppid = 0;
|
||||
}
|
||||
if (PHP_OS_FAMILY !== 'Linux') {
|
||||
return $this->ppid;
|
||||
}
|
||||
$cmdline = "/proc/$this->ppid/cmdline";
|
||||
if (!is_readable($cmdline) || !($content = file_get_contents($cmdline)) || (!str_contains($content, 'WorkerMan') && !str_contains($content, 'php'))) {
|
||||
// Process not exist
|
||||
$this->ppid = 0;
|
||||
}
|
||||
return $this->ppid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function checkAllFilesChange(): bool
|
||||
{
|
||||
if (static::isPaused()) {
|
||||
return false;
|
||||
}
|
||||
foreach ($this->paths as $path) {
|
||||
if ($this->checkFilesChange($path)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $memoryLimit
|
||||
* @return void
|
||||
*/
|
||||
public function checkMemory($memoryLimit): void
|
||||
{
|
||||
if (static::isPaused() || $memoryLimit <= 0) {
|
||||
return;
|
||||
}
|
||||
$masterPid = $this->getMasterPid();
|
||||
if ($masterPid <= 0) {
|
||||
echo "Master process has gone away\n";
|
||||
return;
|
||||
}
|
||||
|
||||
$childrenFile = "/proc/$masterPid/task/$masterPid/children";
|
||||
if (!is_file($childrenFile) || !($children = file_get_contents($childrenFile))) {
|
||||
return;
|
||||
}
|
||||
foreach (explode(' ', $children) as $pid) {
|
||||
$pid = (int)$pid;
|
||||
$statusFile = "/proc/$pid/status";
|
||||
if (!is_file($statusFile) || !($status = file_get_contents($statusFile))) {
|
||||
continue;
|
||||
}
|
||||
$mem = 0;
|
||||
if (preg_match('/VmRSS\s*?:\s*?(\d+?)\s*?kB/', $status, $match)) {
|
||||
$mem = $match[1];
|
||||
}
|
||||
$mem = (int)($mem / 1024);
|
||||
if ($mem >= $memoryLimit) {
|
||||
posix_kill($pid, SIGINT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get memory limit
|
||||
* @param $memoryLimit
|
||||
* @return int
|
||||
*/
|
||||
protected function getMemoryLimit($memoryLimit): int
|
||||
{
|
||||
if ($memoryLimit === 0) {
|
||||
return 0;
|
||||
}
|
||||
$usePhpIni = false;
|
||||
if (!$memoryLimit) {
|
||||
$memoryLimit = ini_get('memory_limit');
|
||||
$usePhpIni = true;
|
||||
}
|
||||
|
||||
if ($memoryLimit == -1) {
|
||||
return 0;
|
||||
}
|
||||
$unit = strtolower($memoryLimit[strlen($memoryLimit) - 1]);
|
||||
$memoryLimit = (int)$memoryLimit;
|
||||
if ($unit === 'g') {
|
||||
$memoryLimit = 1024 * $memoryLimit;
|
||||
} else if ($unit === 'k') {
|
||||
$memoryLimit = ($memoryLimit / 1024);
|
||||
} else if ($unit === 'm') {
|
||||
$memoryLimit = (int)($memoryLimit);
|
||||
} else if ($unit === 't') {
|
||||
$memoryLimit = (1024 * 1024 * $memoryLimit);
|
||||
} else {
|
||||
$memoryLimit = ($memoryLimit / (1024 * 1024));
|
||||
}
|
||||
if ($memoryLimit < 50) {
|
||||
$memoryLimit = 50;
|
||||
}
|
||||
if ($usePhpIni) {
|
||||
$memoryLimit = (0.8 * $memoryLimit);
|
||||
}
|
||||
return (int)$memoryLimit;
|
||||
}
|
||||
|
||||
}
|
||||
14
app/view/index/view.html
Normal file
14
app/view/index/view.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" href="/favicon.ico"/>
|
||||
<title>webman</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
hello <?=htmlspecialchars($name)?>
|
||||
</body>
|
||||
</html>
|
||||
56
composer.json
Normal file
56
composer.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"name": "workerman/webman",
|
||||
"type": "project",
|
||||
"keywords": [
|
||||
"high performance",
|
||||
"http service"
|
||||
],
|
||||
"homepage": "https://www.workerman.net",
|
||||
"license": "MIT",
|
||||
"description": "High performance HTTP Service Framework.",
|
||||
"authors": [
|
||||
{
|
||||
"name": "walkor",
|
||||
"email": "walkor@workerman.net",
|
||||
"homepage": "https://www.workerman.net",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"email": "walkor@workerman.net",
|
||||
"issues": "https://github.com/walkor/webman/issues",
|
||||
"forum": "https://wenda.workerman.net/",
|
||||
"wiki": "https://workerman.net/doc/webman",
|
||||
"source": "https://github.com/walkor/webman"
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"workerman/webman-framework": "^2.1",
|
||||
"monolog/monolog": "^2.0",
|
||||
"mongodb/laravel-mongodb": "^4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-event": "For better performance. "
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"": "./",
|
||||
"app\\": "./app",
|
||||
"App\\": "./app",
|
||||
"app\\View\\Components\\": "./app/view/components"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"post-package-install": [
|
||||
"support\\Plugin::install"
|
||||
],
|
||||
"post-package-update": [
|
||||
"support\\Plugin::install"
|
||||
],
|
||||
"pre-package-uninstall": [
|
||||
"support\\Plugin::uninstall"
|
||||
]
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
}
|
||||
2455
composer.lock
generated
Normal file
2455
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
26
config/app.php
Normal file
26
config/app.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
use support\Request;
|
||||
|
||||
return [
|
||||
'debug' => true,
|
||||
'error_reporting' => E_ALL,
|
||||
'default_timezone' => 'Asia/Shanghai',
|
||||
'request_class' => Request::class,
|
||||
'public_path' => base_path() . DIRECTORY_SEPARATOR . 'public',
|
||||
'runtime_path' => base_path(false) . DIRECTORY_SEPARATOR . 'runtime',
|
||||
'controller_suffix' => 'Controller',
|
||||
'controller_reuse' => false,
|
||||
];
|
||||
21
config/autoload.php
Normal file
21
config/autoload.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
return [
|
||||
'files' => [
|
||||
base_path() . '/app/functions.php',
|
||||
base_path() . '/support/Request.php',
|
||||
base_path() . '/support/Response.php',
|
||||
]
|
||||
];
|
||||
17
config/bootstrap.php
Normal file
17
config/bootstrap.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
return [
|
||||
support\bootstrap\Session::class,
|
||||
];
|
||||
15
config/container.php
Normal file
15
config/container.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
return new Webman\Container;
|
||||
27
config/database.php
Normal file
27
config/database.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
return [
|
||||
// 默认数据库连接(可选改为 mongodb)
|
||||
'default' => 'mysql', // 若需全局用 MongoDB,改为 'mongodb'
|
||||
|
||||
'connections' => [
|
||||
// ... 其他连接(如 mysql)保持不变
|
||||
|
||||
// MongoDB 官方连接配置
|
||||
'mongodb' => [
|
||||
'driver' => 'mongodb',
|
||||
'dsn' => 'mongodb://127.0.0.1:27017', // 集群可写:mongodb://node1:27017,node2:27017
|
||||
'database' => 'Moncter', // 目标数据库名
|
||||
'username' => 'Moncter', // 无认证则省略
|
||||
'password' => '123456', // 无认证则省略
|
||||
'options' => [
|
||||
'replicaSet' => '', // 副本集名称(无则留空)
|
||||
'ssl' => false, // 是否启用 SSL
|
||||
'connectTimeoutMS' => 3000, // 连接超时
|
||||
'socketTimeoutMS' => 5000, // 读写超时
|
||||
// 认证相关(若 MongoDB 启用认证)
|
||||
'authSource' => 'admin', // 认证数据库(默认 admin)
|
||||
'authMechanism' => 'SCRAM-SHA-256', // 认证机制(默认推荐)
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
15
config/dependence.php
Normal file
15
config/dependence.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
return [];
|
||||
17
config/exception.php
Normal file
17
config/exception.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
return [
|
||||
'' => support\exception\Handler::class,
|
||||
];
|
||||
32
config/log.php
Normal file
32
config/log.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
return [
|
||||
'default' => [
|
||||
'handlers' => [
|
||||
[
|
||||
'class' => Monolog\Handler\RotatingFileHandler::class,
|
||||
'constructor' => [
|
||||
runtime_path() . '/logs/webman.log',
|
||||
7, //$maxFiles
|
||||
Monolog\Logger::DEBUG,
|
||||
],
|
||||
'formatter' => [
|
||||
'class' => Monolog\Formatter\LineFormatter::class,
|
||||
'constructor' => [null, 'Y-m-d H:i:s', true],
|
||||
],
|
||||
]
|
||||
],
|
||||
],
|
||||
];
|
||||
15
config/middleware.php
Normal file
15
config/middleware.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
return [];
|
||||
62
config/process.php
Normal file
62
config/process.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
use support\Log;
|
||||
use support\Request;
|
||||
use app\process\Http;
|
||||
|
||||
global $argv;
|
||||
|
||||
return [
|
||||
'webman' => [
|
||||
'handler' => Http::class,
|
||||
'listen' => 'http://0.0.0.0:8787',
|
||||
'count' => cpu_count() * 4,
|
||||
'user' => '',
|
||||
'group' => '',
|
||||
'reusePort' => false,
|
||||
'eventLoop' => '',
|
||||
'context' => [],
|
||||
'constructor' => [
|
||||
'requestClass' => Request::class,
|
||||
'logger' => Log::channel('default'),
|
||||
'appPath' => app_path(),
|
||||
'publicPath' => public_path()
|
||||
]
|
||||
],
|
||||
// File update detection and automatic reload
|
||||
'monitor' => [
|
||||
'handler' => app\process\Monitor::class,
|
||||
'reloadable' => false,
|
||||
'constructor' => [
|
||||
// Monitor these directories
|
||||
'monitorDir' => array_merge([
|
||||
app_path(),
|
||||
config_path(),
|
||||
base_path() . '/process',
|
||||
base_path() . '/support',
|
||||
base_path() . '/resource',
|
||||
base_path() . '/.env',
|
||||
], glob(base_path() . '/plugin/*/app'), glob(base_path() . '/plugin/*/config'), glob(base_path() . '/plugin/*/api')),
|
||||
// Files with these suffixes will be monitored
|
||||
'monitorExtensions' => [
|
||||
'php', 'html', 'htm', 'env'
|
||||
],
|
||||
'options' => [
|
||||
'enable_file_monitor' => !in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/',
|
||||
'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/',
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
21
config/route.php
Normal file
21
config/route.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
use Webman\Route;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
23
config/server.php
Normal file
23
config/server.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
return [
|
||||
'event_loop' => '',
|
||||
'stop_timeout' => 2,
|
||||
'pid_file' => runtime_path() . '/webman.pid',
|
||||
'status_file' => runtime_path() . '/webman.status',
|
||||
'stdout_file' => runtime_path() . '/logs/stdout.log',
|
||||
'log_file' => runtime_path() . '/logs/workerman.log',
|
||||
'max_package_size' => 10 * 1024 * 1024
|
||||
];
|
||||
65
config/session.php
Normal file
65
config/session.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
use Webman\Session\FileSessionHandler;
|
||||
use Webman\Session\RedisSessionHandler;
|
||||
use Webman\Session\RedisClusterSessionHandler;
|
||||
|
||||
return [
|
||||
|
||||
'type' => 'file', // or redis or redis_cluster
|
||||
|
||||
'handler' => FileSessionHandler::class,
|
||||
|
||||
'config' => [
|
||||
'file' => [
|
||||
'save_path' => runtime_path() . '/sessions',
|
||||
],
|
||||
'redis' => [
|
||||
'host' => '127.0.0.1',
|
||||
'port' => 6379,
|
||||
'auth' => '',
|
||||
'timeout' => 2,
|
||||
'database' => '',
|
||||
'prefix' => 'redis_session_',
|
||||
],
|
||||
'redis_cluster' => [
|
||||
'host' => ['127.0.0.1:7000', '127.0.0.1:7001', '127.0.0.1:7001'],
|
||||
'timeout' => 2,
|
||||
'auth' => '',
|
||||
'prefix' => 'redis_session_',
|
||||
]
|
||||
],
|
||||
|
||||
'session_name' => 'PHPSID',
|
||||
|
||||
'auto_update_timestamp' => false,
|
||||
|
||||
'lifetime' => 7*24*60*60,
|
||||
|
||||
'cookie_lifetime' => 365*24*60*60,
|
||||
|
||||
'cookie_path' => '/',
|
||||
|
||||
'domain' => '',
|
||||
|
||||
'http_only' => true,
|
||||
|
||||
'secure' => false,
|
||||
|
||||
'same_site' => '',
|
||||
|
||||
'gc_probability' => [1, 1000],
|
||||
|
||||
];
|
||||
23
config/static.php
Normal file
23
config/static.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Static file settings
|
||||
*/
|
||||
return [
|
||||
'enable' => true,
|
||||
'middleware' => [ // Static file Middleware
|
||||
//app\middleware\StaticFile::class,
|
||||
],
|
||||
];
|
||||
25
config/translation.php
Normal file
25
config/translation.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Multilingual configuration
|
||||
*/
|
||||
return [
|
||||
// Default language
|
||||
'locale' => 'zh_CN',
|
||||
// Fallback language
|
||||
'fallback_locale' => ['zh_CN', 'en'],
|
||||
// Folder where language files are stored
|
||||
'path' => base_path() . '/resource/translations',
|
||||
];
|
||||
22
config/view.php
Normal file
22
config/view.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
use support\view\Raw;
|
||||
use support\view\Twig;
|
||||
use support\view\Blade;
|
||||
use support\view\ThinkPHP;
|
||||
|
||||
return [
|
||||
'handler' => Raw::class
|
||||
];
|
||||
46
go.sh
Normal file
46
go.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail # 严格模式:报错立即退出、禁止未定义变量、管道错误触发退出
|
||||
|
||||
# ================= 配置项(可根据实际情况修改)=================
|
||||
# PHP 脚本路径(相对路径/绝对路径均可,推荐绝对路径更稳定)
|
||||
PHP_SCRIPT="start.php"
|
||||
# PHP 解释器路径(默认自动查找,若提示 php 未找到,手动指定如 /usr/bin/php)
|
||||
PHP_BIN=$(which php || echo "/usr/bin/php")
|
||||
# ==============================================================
|
||||
|
||||
# 1. 检查 PHP 解释器是否存在且可执行
|
||||
if [ ! -x "$PHP_BIN" ]; then
|
||||
echo -e "\033[31m错误:未找到可执行的 PHP 解释器!\033[0m"
|
||||
echo " 解决方案:"
|
||||
echo " 1. 安装 PHP:sudo apt install php-cli(Ubuntu/Debian)或 sudo dnf install php-cli(CentOS/RHEL)"
|
||||
echo " 2. 若已安装,手动修改脚本中的 PHP_BIN 为实际路径(通过 which php 查询)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2. 检查 PHP 脚本是否存在
|
||||
if [ ! -f "$PHP_SCRIPT" ]; then
|
||||
echo -e "\033[31m错误:未找到脚本文件 $PHP_SCRIPT!\033[0m"
|
||||
echo " 请确保脚本与 $PHP_SCRIPT 在同一目录,或修改脚本中的 PHP_SCRIPT 为绝对路径"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 3. 给 PHP 脚本添加执行权限(自动修复权限问题)
|
||||
if [ ! -x "$PHP_SCRIPT" ]; then
|
||||
echo -e "\033[33m警告:$PHP_SCRIPT 缺少执行权限,正在自动添加...\033[0m"
|
||||
chmod u+x "$PHP_SCRIPT" || {
|
||||
echo -e "\033[31m错误:添加执行权限失败,请用 sudo 运行脚本!\033[0m"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
# 4. 执行核心命令(带日志输出优化)
|
||||
echo -e "\033[32m=== 开始执行:$PHP_BIN $PHP_SCRIPT start ===\033[0m"
|
||||
$PHP_BIN "$PHP_SCRIPT" start
|
||||
|
||||
# 5. 执行结果判断
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "\033[32m=== 执行成功!===\033[0m"
|
||||
else
|
||||
echo -e "\033[31m=== 执行失败!请查看上方错误信息 ===\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
BIN
public/favicon.ico
Normal file
BIN
public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
0
src/store/module/websocket/websocket.ts
Normal file
0
src/store/module/websocket/websocket.ts
Normal file
73
src/utils/cacheCleaner.ts
Normal file
73
src/utils/cacheCleaner.ts
Normal file
@@ -0,0 +1,73 @@
|
||||
// 缓存清理工具,统一处理浏览器存储与 Zustand store
|
||||
import { clearAllPersistedData } from "@/store";
|
||||
import { useUserStore } from "@/store/module/user";
|
||||
import { useAppStore } from "@/store/module/app";
|
||||
import { useSettingsStore } from "@/store/module/settings";
|
||||
|
||||
const isBrowser = typeof window !== "undefined";
|
||||
|
||||
const safeStorageClear = (storage?: Storage) => {
|
||||
if (!storage) return;
|
||||
try {
|
||||
storage.clear();
|
||||
} catch (error) {
|
||||
console.warn("清理存储失败:", error);
|
||||
}
|
||||
};
|
||||
|
||||
export const clearBrowserStorage = () => {
|
||||
if (!isBrowser) return;
|
||||
safeStorageClear(window.localStorage);
|
||||
safeStorageClear(window.sessionStorage);
|
||||
// 清理自定义持久化数据
|
||||
try {
|
||||
clearAllPersistedData();
|
||||
} catch (error) {
|
||||
console.warn("清理持久化 store 失败:", error);
|
||||
}
|
||||
};
|
||||
|
||||
export const clearAllIndexedDB = async (): Promise<void> => {
|
||||
if (!isBrowser || !window.indexedDB || !indexedDB.databases) return;
|
||||
|
||||
const databases = await indexedDB.databases();
|
||||
const deleteJobs = databases
|
||||
.map(db => db.name)
|
||||
.filter((name): name is string => Boolean(name))
|
||||
.map(
|
||||
name =>
|
||||
new Promise<void>((resolve, reject) => {
|
||||
const request = indexedDB.deleteDatabase(name);
|
||||
request.onsuccess = () => resolve();
|
||||
request.onerror = () =>
|
||||
reject(new Error(`删除数据库 ${name} 失败`));
|
||||
request.onblocked = () => {
|
||||
setTimeout(() => {
|
||||
const retry = indexedDB.deleteDatabase(name);
|
||||
retry.onsuccess = () => resolve();
|
||||
retry.onerror = () =>
|
||||
reject(new Error(`删除数据库 ${name} 失败`));
|
||||
}, 100);
|
||||
};
|
||||
}),
|
||||
);
|
||||
|
||||
await Promise.allSettled(deleteJobs);
|
||||
};
|
||||
|
||||
export const resetAllStores = () => {
|
||||
const userStore = useUserStore.getState();
|
||||
const appStore = useAppStore.getState();
|
||||
const settingsStore = useSettingsStore.getState();
|
||||
|
||||
userStore?.clearUser?.();
|
||||
appStore?.resetAppState?.();
|
||||
settingsStore?.resetSettings?.();
|
||||
};
|
||||
|
||||
export const clearApplicationCache = async () => {
|
||||
clearBrowserStorage();
|
||||
await clearAllIndexedDB();
|
||||
resetAllStores();
|
||||
};
|
||||
|
||||
5
start.php
Normal file
5
start.php
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
chdir(__DIR__);
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
support\App::run();
|
||||
24
support/Request.php
Normal file
24
support/Request.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
namespace support;
|
||||
|
||||
/**
|
||||
* Class Request
|
||||
* @package support
|
||||
*/
|
||||
class Request extends \Webman\Http\Request
|
||||
{
|
||||
|
||||
}
|
||||
24
support/Response.php
Normal file
24
support/Response.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
namespace support;
|
||||
|
||||
/**
|
||||
* Class Response
|
||||
* @package support
|
||||
*/
|
||||
class Response extends \Webman\Http\Response
|
||||
{
|
||||
|
||||
}
|
||||
139
support/bootstrap.php
Normal file
139
support/bootstrap.php
Normal file
@@ -0,0 +1,139 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
use Dotenv\Dotenv;
|
||||
use support\Log;
|
||||
use Webman\Bootstrap;
|
||||
use Webman\Config;
|
||||
use Webman\Middleware;
|
||||
use Webman\Route;
|
||||
use Webman\Util;
|
||||
use Workerman\Events\Select;
|
||||
use Workerman\Worker;
|
||||
|
||||
$worker = $worker ?? null;
|
||||
|
||||
if (empty(Worker::$eventLoopClass)) {
|
||||
Worker::$eventLoopClass = Select::class;
|
||||
}
|
||||
|
||||
set_error_handler(function ($level, $message, $file = '', $line = 0) {
|
||||
if (error_reporting() & $level) {
|
||||
throw new ErrorException($message, 0, $level, $file, $line);
|
||||
}
|
||||
});
|
||||
|
||||
if ($worker) {
|
||||
register_shutdown_function(function ($startTime) {
|
||||
if (time() - $startTime <= 0.1) {
|
||||
sleep(1);
|
||||
}
|
||||
}, time());
|
||||
}
|
||||
|
||||
if (class_exists('Dotenv\Dotenv') && file_exists(base_path(false) . '/.env')) {
|
||||
if (method_exists('Dotenv\Dotenv', 'createUnsafeMutable')) {
|
||||
Dotenv::createUnsafeMutable(base_path(false))->load();
|
||||
} else {
|
||||
Dotenv::createMutable(base_path(false))->load();
|
||||
}
|
||||
}
|
||||
|
||||
Config::clear();
|
||||
support\App::loadAllConfig(['route']);
|
||||
if ($timezone = config('app.default_timezone')) {
|
||||
date_default_timezone_set($timezone);
|
||||
}
|
||||
|
||||
foreach (config('autoload.files', []) as $file) {
|
||||
include_once $file;
|
||||
}
|
||||
foreach (config('plugin', []) as $firm => $projects) {
|
||||
foreach ($projects as $name => $project) {
|
||||
if (!is_array($project)) {
|
||||
continue;
|
||||
}
|
||||
foreach ($project['autoload']['files'] ?? [] as $file) {
|
||||
include_once $file;
|
||||
}
|
||||
}
|
||||
foreach ($projects['autoload']['files'] ?? [] as $file) {
|
||||
include_once $file;
|
||||
}
|
||||
}
|
||||
|
||||
Middleware::load(config('middleware', []));
|
||||
foreach (config('plugin', []) as $firm => $projects) {
|
||||
foreach ($projects as $name => $project) {
|
||||
if (!is_array($project) || $name === 'static') {
|
||||
continue;
|
||||
}
|
||||
Middleware::load($project['middleware'] ?? []);
|
||||
}
|
||||
Middleware::load($projects['middleware'] ?? [], $firm);
|
||||
if ($staticMiddlewares = config("plugin.$firm.static.middleware")) {
|
||||
Middleware::load(['__static__' => $staticMiddlewares], $firm);
|
||||
}
|
||||
}
|
||||
Middleware::load(['__static__' => config('static.middleware', [])]);
|
||||
|
||||
foreach (config('bootstrap', []) as $className) {
|
||||
if (!class_exists($className)) {
|
||||
$log = "Warning: Class $className setting in config/bootstrap.php not found\r\n";
|
||||
echo $log;
|
||||
Log::error($log);
|
||||
continue;
|
||||
}
|
||||
/** @var Bootstrap $className */
|
||||
$className::start($worker);
|
||||
}
|
||||
|
||||
foreach (config('plugin', []) as $firm => $projects) {
|
||||
foreach ($projects as $name => $project) {
|
||||
if (!is_array($project)) {
|
||||
continue;
|
||||
}
|
||||
foreach ($project['bootstrap'] ?? [] as $className) {
|
||||
if (!class_exists($className)) {
|
||||
$log = "Warning: Class $className setting in config/plugin/$firm/$name/bootstrap.php not found\r\n";
|
||||
echo $log;
|
||||
Log::error($log);
|
||||
continue;
|
||||
}
|
||||
/** @var Bootstrap $className */
|
||||
$className::start($worker);
|
||||
}
|
||||
}
|
||||
foreach ($projects['bootstrap'] ?? [] as $className) {
|
||||
/** @var string $className */
|
||||
if (!class_exists($className)) {
|
||||
$log = "Warning: Class $className setting in plugin/$firm/config/bootstrap.php not found\r\n";
|
||||
echo $log;
|
||||
Log::error($log);
|
||||
continue;
|
||||
}
|
||||
/** @var Bootstrap $className */
|
||||
$className::start($worker);
|
||||
}
|
||||
}
|
||||
|
||||
$directory = base_path() . '/plugin';
|
||||
$paths = [config_path()];
|
||||
foreach (Util::scanDir($directory) as $path) {
|
||||
if (is_dir($path = "$path/config")) {
|
||||
$paths[] = $path;
|
||||
}
|
||||
}
|
||||
Route::load($paths);
|
||||
|
||||
3
windows.bat
Normal file
3
windows.bat
Normal file
@@ -0,0 +1,3 @@
|
||||
CHCP 65001
|
||||
php windows.php
|
||||
pause
|
||||
136
windows.php
Normal file
136
windows.php
Normal file
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
/**
|
||||
* Start file for windows
|
||||
*/
|
||||
chdir(__DIR__);
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
use Dotenv\Dotenv;
|
||||
use support\App;
|
||||
use Workerman\Worker;
|
||||
|
||||
ini_set('display_errors', 'on');
|
||||
error_reporting(E_ALL);
|
||||
|
||||
if (class_exists('Dotenv\Dotenv') && file_exists(base_path() . '/.env')) {
|
||||
if (method_exists('Dotenv\Dotenv', 'createUnsafeImmutable')) {
|
||||
Dotenv::createUnsafeImmutable(base_path())->load();
|
||||
} else {
|
||||
Dotenv::createMutable(base_path())->load();
|
||||
}
|
||||
}
|
||||
|
||||
App::loadAllConfig(['route']);
|
||||
|
||||
$errorReporting = config('app.error_reporting');
|
||||
if (isset($errorReporting)) {
|
||||
error_reporting($errorReporting);
|
||||
}
|
||||
|
||||
$runtimeProcessPath = runtime_path() . DIRECTORY_SEPARATOR . '/windows';
|
||||
$paths = [
|
||||
$runtimeProcessPath,
|
||||
runtime_path('logs'),
|
||||
runtime_path('views')
|
||||
];
|
||||
foreach ($paths as $path) {
|
||||
if (!is_dir($path)) {
|
||||
mkdir($path, 0777, true);
|
||||
}
|
||||
}
|
||||
|
||||
$processFiles = [];
|
||||
if (config('server.listen')) {
|
||||
$processFiles[] = __DIR__ . DIRECTORY_SEPARATOR . 'start.php';
|
||||
}
|
||||
foreach (config('process', []) as $processName => $config) {
|
||||
$processFiles[] = write_process_file($runtimeProcessPath, $processName, '');
|
||||
}
|
||||
|
||||
foreach (config('plugin', []) as $firm => $projects) {
|
||||
foreach ($projects as $name => $project) {
|
||||
if (!is_array($project)) {
|
||||
continue;
|
||||
}
|
||||
foreach ($project['process'] ?? [] as $processName => $config) {
|
||||
$processFiles[] = write_process_file($runtimeProcessPath, $processName, "$firm.$name");
|
||||
}
|
||||
}
|
||||
foreach ($projects['process'] ?? [] as $processName => $config) {
|
||||
$processFiles[] = write_process_file($runtimeProcessPath, $processName, $firm);
|
||||
}
|
||||
}
|
||||
|
||||
function write_process_file($runtimeProcessPath, $processName, $firm): string
|
||||
{
|
||||
$processParam = $firm ? "plugin.$firm.$processName" : $processName;
|
||||
$configParam = $firm ? "config('plugin.$firm.process')['$processName']" : "config('process')['$processName']";
|
||||
$fileContent = <<<EOF
|
||||
<?php
|
||||
require_once __DIR__ . '/../../vendor/autoload.php';
|
||||
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Webman\Config;
|
||||
use support\App;
|
||||
|
||||
ini_set('display_errors', 'on');
|
||||
error_reporting(E_ALL);
|
||||
|
||||
if (is_callable('opcache_reset')) {
|
||||
opcache_reset();
|
||||
}
|
||||
|
||||
if (!\$appConfigFile = config_path('app.php')) {
|
||||
throw new RuntimeException('Config file not found: app.php');
|
||||
}
|
||||
\$appConfig = require \$appConfigFile;
|
||||
if (\$timezone = \$appConfig['default_timezone'] ?? '') {
|
||||
date_default_timezone_set(\$timezone);
|
||||
}
|
||||
|
||||
App::loadAllConfig(['route']);
|
||||
|
||||
worker_start('$processParam', $configParam);
|
||||
|
||||
if (DIRECTORY_SEPARATOR != "/") {
|
||||
Worker::\$logFile = config('server')['log_file'] ?? Worker::\$logFile;
|
||||
TcpConnection::\$defaultMaxPackageSize = config('server')['max_package_size'] ?? 10*1024*1024;
|
||||
}
|
||||
|
||||
Worker::runAll();
|
||||
|
||||
EOF;
|
||||
$processFile = $runtimeProcessPath . DIRECTORY_SEPARATOR . "start_$processParam.php";
|
||||
file_put_contents($processFile, $fileContent);
|
||||
return $processFile;
|
||||
}
|
||||
|
||||
if ($monitorConfig = config('process.monitor.constructor')) {
|
||||
$monitorHandler = config('process.monitor.handler');
|
||||
$monitor = new $monitorHandler(...array_values($monitorConfig));
|
||||
}
|
||||
|
||||
function popen_processes($processFiles)
|
||||
{
|
||||
$cmd = '"' . PHP_BINARY . '" ' . implode(' ', $processFiles);
|
||||
$descriptorspec = [STDIN, STDOUT, STDOUT];
|
||||
$resource = proc_open($cmd, $descriptorspec, $pipes, null, null, ['bypass_shell' => true]);
|
||||
if (!$resource) {
|
||||
exit("Can not execute $cmd\r\n");
|
||||
}
|
||||
return $resource;
|
||||
}
|
||||
|
||||
$resource = popen_processes($processFiles);
|
||||
echo "\r\n";
|
||||
while (1) {
|
||||
sleep(1);
|
||||
if (!empty($monitor) && $monitor->checkAllFilesChange()) {
|
||||
$status = proc_get_status($resource);
|
||||
$pid = $status['pid'];
|
||||
shell_exec("taskkill /F /T /PID $pid");
|
||||
proc_close($resource);
|
||||
$resource = popen_processes($processFiles);
|
||||
}
|
||||
}
|
||||
348
技术方案.md
Normal file
348
技术方案.md
Normal file
@@ -0,0 +1,348 @@
|
||||
## 用户标签引擎技术方案(以身份证为主键)
|
||||
|
||||
### 一、目标与范围
|
||||
- 构建可扩展的用户标签引擎,统一以身份证为主键的人(person)进行画像与筛选。
|
||||
- 支持多数据源接入(交易、行为、社群、外呼等),并聚合多个手机号、多个微信号到同一人。
|
||||
- 提供规则驱动的人群筛选、客群快照和线索分发能力,服务销售精细化运营。
|
||||
|
||||
### 0. 需求整合清单(共识)
|
||||
- 数据接入:多数据源/多数据库连接,按“数据源-表/接口”粒度定义 Job;增量水位、批量与重试。
|
||||
- 标识治理:支持弱标识(手机号等)建“临时人”,获取强标识(身份证/unionid/客户号)后合并;全链路幂等与审计。
|
||||
- 标签体系:分通道层与人层;`tag_dict` 定义口径/类型/窗口/聚合/版本;标签写入包含 window/source/version。
|
||||
- 聚合计算:通道→人层遵循 `aggregation`(sum/max/avg/any/best_of 等),支持实时触发与离线批处理。
|
||||
- 规则与人群:DSL 配置、试算/执行、审计;Redis 维护 cohort/位图,支持快照与导出。
|
||||
- 回灌与重算:规则或口径变更可对存量回评估;任务状态、错误与执行明细可观测、可重试。
|
||||
- 安全合规:身份证只存哈希(加盐),最小化数据使用,接口鉴权与导出留痕。
|
||||
|
||||
### 二、总体架构
|
||||
- 核心理念:人层(person)是唯一真相;通道层(channel)承载具体手机号/微信号等标识。
|
||||
- 组件分层:
|
||||
- 数据接入层:标准化事件/明细,写入通道层标签。
|
||||
- 聚合计算层:将通道层指标按口径聚合到人层标签。
|
||||
- 规则/人群层:基于人层标签做筛选、快照、导出与分发。
|
||||
- 存储与缓存:MySQL(字典/事实/审计)+ Redis(cohort 人群集与位图)。
|
||||
|
||||
### 二点五、运行逻辑图(分层架构,数据流视角)
|
||||
```mermaid
|
||||
╔═════════════════════════════════════════════════════════════════════════╗
|
||||
║ 数据源层 ║
|
||||
╚═════════════════════════════════════════════════════════════════════════╝
|
||||
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
|
||||
│交易系统│ │APP行为│ │客服系统│ │CRM │
|
||||
└─────┘ └─────┘ └─────┘ └─────┘
|
||||
│ │ │ │
|
||||
└───────┴─────────┘
|
||||
▼
|
||||
╔═════════════════════════════════════════════════════════════════════════╗
|
||||
║ 接入层 ║
|
||||
╚═════════════════════════════════════════════════════════════════════════╝
|
||||
┌───────────────────────────────────────┐
|
||||
│ Job调度器 增量水位 │
|
||||
└───────────────────────────────────────┘
|
||||
▼
|
||||
┌───────────────────────────────────────┐
|
||||
│ 标准化 校验 │
|
||||
└───────────────────────────────────────┘
|
||||
▼
|
||||
╔═════════════════════════════════════════════════════════════════════════╗
|
||||
║ 身份层 ║
|
||||
╚═════════════════════════════════════════════════════════════════════════╝
|
||||
┌───────────────────────────────────────┐
|
||||
│ IdentifierService │
|
||||
│ 手机号→person_id │
|
||||
└───────────────────────────────────────┘
|
||||
▼
|
||||
┌───────────────────────────────────────┐
|
||||
│ 临时人建表 强标识合并 │
|
||||
└───────────────────────────────────────┘
|
||||
▼
|
||||
╔═════════════════════════════════════════════════════════════════════════╗
|
||||
║ 标签层 ║
|
||||
╚═════════════════════════════════════════════════════════════════════════╝
|
||||
┌───────────────────────────────────────┐
|
||||
│ channel_tags │
|
||||
│ 通道标签存储 │
|
||||
└───────────────────────────────────────┘
|
||||
▼
|
||||
┌───────────────────────────────────────┐
|
||||
│ Aggregator │
|
||||
│ 聚合计算 │
|
||||
└───────────────────────────────────────┘
|
||||
▼
|
||||
┌───────────────────────────────────────┐
|
||||
│ person_tags │
|
||||
│ 人层标签存储 │
|
||||
└───────────────────────────────────────┘
|
||||
▼
|
||||
╔═════════════════════════════════════════════════════════════════════════╗
|
||||
║ 规则层 ║
|
||||
╚═════════════════════════════════════════════════════════════════════════╝
|
||||
┌───────────────────────────────────────┐
|
||||
│ RuleEngine │
|
||||
│ DSL执行 │
|
||||
└───────────────────────────────────────┘
|
||||
▼
|
||||
┌───────────────────────────────────────┐
|
||||
│ Redis Cohort │
|
||||
│ 人群集合 │
|
||||
└───────────────────────────────────────┘
|
||||
▼
|
||||
╔═════════════════════════════════════════════════════════════════════════╗
|
||||
║ 应用层 ║
|
||||
╚═════════════════════════════════════════════════════════════════════════╝
|
||||
┌─────┐ ┌─────┐ ┌─────┐
|
||||
│人群查询│ │快照导出│ │分发推送│
|
||||
└─────┘ └─────┘ └─────┘
|
||||
|
||||
```
|
||||
|
||||
### 二点六、运行逻辑图(时序视角)
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant 业务系统 as 业务系统<br/>(交易/APP/客服)
|
||||
participant 接入服务 as 数据接入服务
|
||||
participant 身份服务 as 身份解析服务
|
||||
participant 通道标签 as channel_tags<br/>(存储)
|
||||
participant 聚合服务 as 聚合计算服务
|
||||
participant 人层标签 as person_tags<br/>(存储)
|
||||
participant 规则引擎 as 规则引擎
|
||||
participant 人群缓存 as Redis Cohort
|
||||
|
||||
业务系统->>接入服务: 1. 推送事件/批量数据
|
||||
接入服务->>接入服务: 2. 标准化、校验、去重
|
||||
接入服务->>身份服务: 3. 解析标识<br/>(手机号/微信→person_id)
|
||||
身份服务-->>接入服务: 返回person_id<br/>(不存在则建临时人)
|
||||
接入服务->>通道标签: 4. 写入通道标签<br/>(幂等、window/source/version)
|
||||
|
||||
通道标签->>聚合服务: 5. 触发聚合事件<br/>(实时/批量)
|
||||
聚合服务->>人层标签: 6. 按口径聚合<br/>(sum/max/avg/any)
|
||||
|
||||
人层标签->>规则引擎: 7. 标签变更触发<br/>(受影响person_id)
|
||||
规则引擎->>规则引擎: 8. 执行DSL规则
|
||||
规则引擎->>人群缓存: 9. 更新cohort<br/>(SADD/SINTER)
|
||||
|
||||
人群缓存-->>业务系统: 10. 人群查询/导出
|
||||
```
|
||||
|
||||
### 二点七、运行逻辑图(简化版,核心路径)
|
||||
```mermaid
|
||||
graph TB
|
||||
Start([数据源<br/>交易/行为/客服/CRM]) --> Ingest[数据接入<br/>Job调度 + 标准化]
|
||||
Ingest --> Identity[身份解析<br/>手机号→person_id]
|
||||
Identity --> Channel[通道标签<br/>channel_tags]
|
||||
Channel --> Aggregate[聚合计算<br/>通道→人层]
|
||||
Aggregate --> Person[人层标签<br/>person_tags]
|
||||
Person --> Rule[规则引擎<br/>DSL筛选]
|
||||
Rule --> Cohort[人群集合<br/>Redis Cohort]
|
||||
Cohort --> Export([应用输出<br/>查询/快照/分发])
|
||||
|
||||
Ingest -.->|状态| Audit1[(ingest_state)]
|
||||
Ingest -.->|错误| Audit2[(ingest_errors)]
|
||||
Rule -.->|执行记录| Audit3[(rule_executions)]
|
||||
|
||||
style Start fill:#e1f5ff
|
||||
style Export fill:#e1f5ff
|
||||
style Ingest fill:#fff4e1
|
||||
style Identity fill:#e8f5e9
|
||||
style Channel fill:#f3e5f5
|
||||
style Aggregate fill:#f3e5f5
|
||||
style Person fill:#f3e5f5
|
||||
style Rule fill:#fff9c4
|
||||
style Cohort fill:#fff9c4
|
||||
```
|
||||
|
||||
### 三、数据模型
|
||||
```sql
|
||||
-- 人:身份证(脱敏哈希)为主键
|
||||
CREATE TABLE person (
|
||||
person_id CHAR(32) PRIMARY KEY, -- md5(uppercase(id_card_no_without_spaces))
|
||||
id_card_hash CHAR(32) UNIQUE,
|
||||
name VARCHAR(64) NULL,
|
||||
gender TINYINT NULL,
|
||||
birthday DATE NULL,
|
||||
created_at DATETIME,
|
||||
updated_at DATETIME
|
||||
);
|
||||
|
||||
-- 标识绑定:一个人可有多个手机号/微信/外部ID
|
||||
CREATE TABLE person_identifier (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
person_id CHAR(32),
|
||||
id_type ENUM('phone','wechat','external','email') NOT NULL,
|
||||
id_value VARCHAR(128) NOT NULL,
|
||||
is_primary TINYINT DEFAULT 0,
|
||||
verified TINYINT DEFAULT 0,
|
||||
created_at DATETIME,
|
||||
updated_at DATETIME,
|
||||
UNIQUE KEY uk_type_value (id_type, id_value),
|
||||
KEY idx_person (person_id)
|
||||
);
|
||||
|
||||
-- 标签字典
|
||||
CREATE TABLE tag_dict (
|
||||
tag_code VARCHAR(128) PRIMARY KEY, -- 例:person.trade.arpu_90d
|
||||
name VARCHAR(128),
|
||||
category VARCHAR(64),
|
||||
level ENUM('person','channel') NOT NULL,
|
||||
type ENUM('int','bool','enum','set','string','float') NOT NULL,
|
||||
enum_values JSON NULL,
|
||||
unit VARCHAR(16) NULL,
|
||||
aggregation ENUM('sum','max','min','avg','any','best_of') NULL, -- 通道→人层口径
|
||||
description TEXT,
|
||||
version INT DEFAULT 1,
|
||||
status ENUM('draft','active','deprecated') DEFAULT 'active',
|
||||
owner VARCHAR(64),
|
||||
created_at DATETIME,
|
||||
updated_at DATETIME
|
||||
);
|
||||
|
||||
-- 人层标签(销售筛选用)
|
||||
CREATE TABLE person_tags (
|
||||
person_id CHAR(32),
|
||||
tag_code VARCHAR(128),
|
||||
tag_value VARCHAR(256),
|
||||
confidence TINYINT DEFAULT 100,
|
||||
source VARCHAR(64),
|
||||
window VARCHAR(32),
|
||||
version INT,
|
||||
updated_at DATETIME,
|
||||
PRIMARY KEY (person_id, tag_code),
|
||||
KEY idx_tag (tag_code, tag_value)
|
||||
);
|
||||
|
||||
-- 通道层标签(手机号/微信号维度)
|
||||
CREATE TABLE channel_tags (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
id_type ENUM('phone','wechat','external') NOT NULL,
|
||||
id_value VARCHAR(128) NOT NULL,
|
||||
tag_code VARCHAR(128),
|
||||
tag_value VARCHAR(256),
|
||||
source VARCHAR(64),
|
||||
window VARCHAR(32),
|
||||
updated_at DATETIME,
|
||||
UNIQUE KEY uk_dim (id_type, id_value, tag_code),
|
||||
KEY idx_tag (tag_code, tag_value)
|
||||
);
|
||||
|
||||
-- 规则配置与执行审计
|
||||
CREATE TABLE tag_rules (
|
||||
rule_id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
name VARCHAR(128),
|
||||
dsl JSON,
|
||||
status ENUM('draft','active','paused') DEFAULT 'active',
|
||||
schedule VARCHAR(64) NULL,
|
||||
output_tag VARCHAR(128) NULL,
|
||||
owner VARCHAR(64),
|
||||
created_at DATETIME,
|
||||
updated_at DATETIME
|
||||
);
|
||||
|
||||
CREATE TABLE rule_executions (
|
||||
exec_id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
rule_id BIGINT,
|
||||
started_at DATETIME,
|
||||
finished_at DATETIME,
|
||||
affected_users INT,
|
||||
status ENUM('success','failed','partial'),
|
||||
message TEXT
|
||||
);
|
||||
```
|
||||
|
||||
### 四、标签规范
|
||||
- 分类:
|
||||
- 基础画像、行为活跃、交易能力、风险合规、社交关系、生命周期、设备画像、地域属性。
|
||||
- 命名:`{level}.{category}.{name}_{window}`
|
||||
- 人层:`person.trade.arpu_90d`,`person.behavior.active_days_30d`
|
||||
- 通道层:`channel.wechat.group_join_30d`,`channel.phone.outbound_connect_7d`
|
||||
- 口径:在 `tag_dict` 中声明 `type/enum/range/aggregation/window/update_freq/version`。
|
||||
- 聚合:
|
||||
- 风险类:any(任一通道命中→人层命中)。
|
||||
- 活跃/价值:max/sum/avg 视业务定义。
|
||||
- 可达性:best_of(如选近30日响应率最高的手机号)。
|
||||
|
||||
### 五、规则与人群(DSL)
|
||||
```json
|
||||
{
|
||||
"name": "高潜付费人群",
|
||||
"logic": "AND",
|
||||
"conditions": [
|
||||
{"tag": "person.trade.arpu_90d", "op": "gte", "value": 500},
|
||||
{"tag": "person.behavior.active_days_30d", "op": "gte", "value": 10},
|
||||
{"tag": "person.risk.blacklist", "op": "eq", "value": false}
|
||||
],
|
||||
"window": "rolling_90d",
|
||||
"ttl": "24h"
|
||||
}
|
||||
```
|
||||
|
||||
### 六、计算与刷新策略
|
||||
- 批处理(T+1/T+0小时):生成稳定画像(交易统计、生命周期等)。
|
||||
- 准实时(秒级/分级):事件驱动更新通道层标签,触发对应人层增量聚合。
|
||||
- 回评估:字典/规则变更后对存量人群重算,并写入审计。
|
||||
|
||||
### 七、系统设计(ThinkPHP 5.1)
|
||||
- 目录结构(`application/tag`):
|
||||
- controller:`TagDictController`、`RuleController`、`SegmentController`、`IdentifierController`
|
||||
- model:`TagDict`、`Person`、`PersonIdentifier`、`PersonTags`、`ChannelTags`、`TagRules`、`RuleExecutions`
|
||||
- service:
|
||||
- `IdentifierService`(标识绑定/查找/合并)
|
||||
- `ChannelTagService`(通道标签写入)
|
||||
- `PersonTagService`(人层聚合/重算)
|
||||
- `TagQueryService`(条件解析→Redis/DB组合查询)
|
||||
- `RuleEngineService`(DSL 校验/执行/审计)
|
||||
- `CohortCacheService`(cohort 维护、集合/位图运算)
|
||||
- command:`ExecuteRule`、`RecomputeTags`、`CohortSnapshot`
|
||||
|
||||
- 路由(建议,受 `jwt` 保护):
|
||||
```php
|
||||
Route::group('v1/tag', function () {
|
||||
Route::get('dict', 'app\\tag\\controller\\TagDictController@index');
|
||||
Route::post('dict', 'app\\tag\\controller\\TagDictController@create');
|
||||
Route::post('identifier/bind', 'app\\tag\\controller\\IdentifierController@bind');
|
||||
Route::post('rule/execute/:id', 'app\\tag\\controller\\RuleController@execute');
|
||||
Route::post('segment/query', 'app\\tag\\controller\\SegmentController@query');
|
||||
Route::post('segment/snapshot', 'app\\tag\\controller\\SegmentController@snapshot');
|
||||
})->middleware(['jwt']);
|
||||
```
|
||||
|
||||
### 八、查询与筛选
|
||||
- 人层为主:`person_tags` 组合条件查询,Redis 保存常用 cohort:
|
||||
- Redis 示例:`SINTER cohort:person.trade.arpu_90d:gt500 cohort:person.active_days_30d:gte10 SDIFF cohort:person.risk.blacklist:eq1`
|
||||
- MySQL 组合查询示例:
|
||||
```sql
|
||||
SELECT DISTINCT t1.person_id
|
||||
FROM person_tags t1
|
||||
JOIN person_tags t2 ON t2.person_id=t1.person_id
|
||||
LEFT JOIN person_tags t3 ON t3.person_id=t1.person_id AND t3.tag_code='person.risk.blacklist'
|
||||
WHERE t1.tag_code='person.trade.arpu_90d' AND CAST(t1.tag_value AS DECIMAL)>=500
|
||||
AND t2.tag_code='person.behavior.active_days_30d' AND CAST(t2.tag_value AS SIGNED)>=10
|
||||
AND (t3.tag_value IS NULL OR t3.tag_value='0')
|
||||
LIMIT 50 OFFSET 0;
|
||||
```
|
||||
|
||||
### 九、关键流程
|
||||
1) 事件接入:收到 `id_type + id_value`(如手机号)→ 查 `person_identifier` → 得到 `person_id`。
|
||||
2) 通道标签更新:写 `channel_tags`,并发布“聚合任务”。
|
||||
3) 人层聚合:按 `tag_dict.aggregation` 规则,更新 `person_tags`。
|
||||
4) 规则评估:对受影响的 `person_id` 运行启用中的规则,更新 cohort/输出标签。
|
||||
5) 人群产出:支持分页查询、生成快照、导出或推送 CRM/外呼系统。
|
||||
|
||||
### 十、缓存与索引
|
||||
- Redis:
|
||||
- 集合/位图存 cohort,Key 规范:`cohort:{tag_code}:{op}{value}` 或区间桶。
|
||||
- TTL:默认 24h,可按规则 `ttl` 覆盖。
|
||||
- MySQL:
|
||||
- `person_tags(tag_code, tag_value)`、`channel_tags(tag_code, tag_value)` 倒排索引。
|
||||
- 审计表按时间分区或冷热分离。
|
||||
|
||||
### 十一、合规与安全
|
||||
- 身份证只存哈希(不可逆),不落明文;导出脱敏。
|
||||
- 最小权限访问,接口留痕审计(规则执行、导出、查看)。
|
||||
- 口径透明:标签保留来源、窗口、置信度、版本。
|
||||
|
||||
### 十二、里程碑(落地计划)
|
||||
- M1:建表与服务骨架;接入交易/行为两类数据;产出10个核心标签。
|
||||
- M2:规则试算与快照;Redis cohort;首批销售客群模板(高价值流失预警)。
|
||||
- M3:通道“最佳触达”策略;CRM/外呼对接;质量监控与看板。
|
||||
|
||||
|
||||
374
数据库/KR.js
Normal file
374
数据库/KR.js
Normal file
@@ -0,0 +1,374 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:18:11
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 厦门京东内
|
||||
// ----------------------------
|
||||
db.getCollection("厦门京东内").drop();
|
||||
db.createCollection("厦门京东内");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 厦门用户资产2025年9月
|
||||
// ----------------------------
|
||||
db.getCollection("厦门用户资产2025年9月").drop();
|
||||
db.createCollection("厦门用户资产2025年9月");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 厦门用户资产2025年9月_优化版
|
||||
// ----------------------------
|
||||
db.getCollection("厦门用户资产2025年9月_优化版").drop();
|
||||
db.createCollection("厦门用户资产2025年9月_优化版");
|
||||
db.getCollection("厦门用户资产2025年9月_优化版").createIndex({
|
||||
user_level: NumberInt("1")
|
||||
}, {
|
||||
name: "user_level_1"
|
||||
});
|
||||
db.getCollection("厦门用户资产2025年9月_优化版").createIndex({
|
||||
total_score: NumberInt("-1")
|
||||
}, {
|
||||
name: "total_score_-1"
|
||||
});
|
||||
db.getCollection("厦门用户资产2025年9月_优化版").createIndex({
|
||||
mobile: NumberInt("1")
|
||||
}, {
|
||||
name: "mobile_1"
|
||||
});
|
||||
db.getCollection("厦门用户资产2025年9月_优化版").createIndex({
|
||||
city: NumberInt("1")
|
||||
}, {
|
||||
name: "city_1"
|
||||
});
|
||||
db.getCollection("厦门用户资产2025年9月_优化版").createIndex({
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "name_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 游戏_深度用户有过语音聊天、魔兽等
|
||||
// ----------------------------
|
||||
db.getCollection("游戏_深度用户有过语音聊天、魔兽等").drop();
|
||||
db.createCollection("游戏_深度用户有过语音聊天、魔兽等");
|
||||
db.getCollection("游戏_深度用户有过语音聊天、魔兽等").createIndex({
|
||||
user_id: NumberInt("1")
|
||||
}, {
|
||||
name: "user_id_1"
|
||||
});
|
||||
db.getCollection("游戏_深度用户有过语音聊天、魔兽等").createIndex({
|
||||
user_value: NumberInt("1")
|
||||
}, {
|
||||
name: "user_value_1"
|
||||
});
|
||||
db.getCollection("游戏_深度用户有过语音聊天、魔兽等").createIndex({
|
||||
overlap_count: NumberInt("1")
|
||||
}, {
|
||||
name: "overlap_count_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 用户估值
|
||||
// ----------------------------
|
||||
db.getCollection("用户估值").drop();
|
||||
db.createCollection("用户估值");
|
||||
db.getCollection("用户估值").createIndex({
|
||||
user_key: NumberInt("1")
|
||||
}, {
|
||||
name: "user_key_1",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("用户估值").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
db.getCollection("用户估值").createIndex({
|
||||
phone_masked: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_masked_1"
|
||||
});
|
||||
db.getCollection("用户估值").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
db.getCollection("用户估值").createIndex({
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "name_1"
|
||||
});
|
||||
db.getCollection("用户估值").createIndex({
|
||||
province: NumberInt("1"),
|
||||
city: NumberInt("1")
|
||||
}, {
|
||||
name: "province_1_city_1"
|
||||
});
|
||||
db.getCollection("用户估值").createIndex({
|
||||
computed_at: NumberInt("-1")
|
||||
}, {
|
||||
name: "computed_at_-1"
|
||||
});
|
||||
db.getCollection("用户估值").createIndex({
|
||||
source_channels: NumberInt("1")
|
||||
}, {
|
||||
name: "source_channels_1"
|
||||
});
|
||||
db.getCollection("用户估值").createIndex({
|
||||
"data_quality.completeness": NumberInt("-1")
|
||||
}, {
|
||||
name: "data_quality.completeness_-1"
|
||||
});
|
||||
db.getCollection("用户估值").createIndex({
|
||||
user_evaluation_score: NumberInt("-1")
|
||||
}, {
|
||||
name: "user_evaluation_score_-1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 用户资产整合
|
||||
// ----------------------------
|
||||
db.getCollection("用户资产整合").drop();
|
||||
db.createCollection("用户资产整合");
|
||||
db.getCollection("用户资产整合").createIndex({
|
||||
user_key: NumberInt("1")
|
||||
}, {
|
||||
name: "idx_user_key"
|
||||
});
|
||||
db.getCollection("用户资产整合").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "idx_phone"
|
||||
});
|
||||
db.getCollection("用户资产整合").createIndex({
|
||||
consumption_level: NumberInt("1")
|
||||
}, {
|
||||
name: "idx_consumption_level"
|
||||
});
|
||||
db.getCollection("用户资产整合").createIndex({
|
||||
consumption_score: NumberInt("-1")
|
||||
}, {
|
||||
name: "idx_consumption_score_desc"
|
||||
});
|
||||
db.getCollection("用户资产整合").createIndex({
|
||||
city: NumberInt("1")
|
||||
}, {
|
||||
name: "idx_city"
|
||||
});
|
||||
db.getCollection("用户资产整合").createIndex({
|
||||
age_range: NumberInt("1")
|
||||
}, {
|
||||
name: "idx_age_range"
|
||||
});
|
||||
db.getCollection("用户资产整合").createIndex({
|
||||
user_evaluation_score: NumberInt("-1")
|
||||
}, {
|
||||
name: "idx_user_evaluation_score_desc"
|
||||
});
|
||||
db.getCollection("用户资产整合").createIndex({
|
||||
consumption_level: NumberInt("1"),
|
||||
consumption_score: NumberInt("-1")
|
||||
}, {
|
||||
name: "idx_level_score"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 金融客户_厦门_A级用户
|
||||
// ----------------------------
|
||||
db.getCollection("金融客户_厦门_A级用户").drop();
|
||||
db.createCollection("金融客户_厦门_A级用户");
|
||||
db.getCollection("金融客户_厦门_A级用户").createIndex({
|
||||
total_score: NumberInt("1")
|
||||
}, {
|
||||
name: "total_score_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_A级用户").createIndex({
|
||||
"姓名": NumberInt("1")
|
||||
}, {
|
||||
name: "姓名_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_A级用户").createIndex({
|
||||
"手机": NumberInt("1")
|
||||
}, {
|
||||
name: "手机_1",
|
||||
background: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 金融客户_厦门_B级用户
|
||||
// ----------------------------
|
||||
db.getCollection("金融客户_厦门_B级用户").drop();
|
||||
db.createCollection("金融客户_厦门_B级用户");
|
||||
db.getCollection("金融客户_厦门_B级用户").createIndex({
|
||||
total_score: NumberInt("1")
|
||||
}, {
|
||||
name: "total_score_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_B级用户").createIndex({
|
||||
"姓名": NumberInt("1")
|
||||
}, {
|
||||
name: "姓名_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_B级用户").createIndex({
|
||||
"手机": NumberInt("1")
|
||||
}, {
|
||||
name: "手机_1",
|
||||
background: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 金融客户_厦门_C级用户
|
||||
// ----------------------------
|
||||
db.getCollection("金融客户_厦门_C级用户").drop();
|
||||
db.createCollection("金融客户_厦门_C级用户");
|
||||
db.getCollection("金融客户_厦门_C级用户").createIndex({
|
||||
total_score: NumberInt("1")
|
||||
}, {
|
||||
name: "total_score_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_C级用户").createIndex({
|
||||
"姓名": NumberInt("1")
|
||||
}, {
|
||||
name: "姓名_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_C级用户").createIndex({
|
||||
"手机": NumberInt("1")
|
||||
}, {
|
||||
name: "手机_1",
|
||||
background: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 金融客户_厦门_D级用户
|
||||
// ----------------------------
|
||||
db.getCollection("金融客户_厦门_D级用户").drop();
|
||||
db.createCollection("金融客户_厦门_D级用户");
|
||||
db.getCollection("金融客户_厦门_D级用户").createIndex({
|
||||
total_score: NumberInt("1")
|
||||
}, {
|
||||
name: "total_score_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_D级用户").createIndex({
|
||||
"姓名": NumberInt("1")
|
||||
}, {
|
||||
name: "姓名_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_D级用户").createIndex({
|
||||
"手机": NumberInt("1")
|
||||
}, {
|
||||
name: "手机_1",
|
||||
background: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 金融客户_厦门_E级用户
|
||||
// ----------------------------
|
||||
db.getCollection("金融客户_厦门_E级用户").drop();
|
||||
db.createCollection("金融客户_厦门_E级用户");
|
||||
db.getCollection("金融客户_厦门_E级用户").createIndex({
|
||||
total_score: NumberInt("1")
|
||||
}, {
|
||||
name: "total_score_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_E级用户").createIndex({
|
||||
"姓名": NumberInt("1")
|
||||
}, {
|
||||
name: "姓名_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_E级用户").createIndex({
|
||||
"手机": NumberInt("1")
|
||||
}, {
|
||||
name: "手机_1",
|
||||
background: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 金融客户_厦门_S级用户
|
||||
// ----------------------------
|
||||
db.getCollection("金融客户_厦门_S级用户").drop();
|
||||
db.createCollection("金融客户_厦门_S级用户");
|
||||
db.getCollection("金融客户_厦门_S级用户").createIndex({
|
||||
total_score: NumberInt("1")
|
||||
}, {
|
||||
name: "total_score_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_S级用户").createIndex({
|
||||
"姓名": NumberInt("1")
|
||||
}, {
|
||||
name: "姓名_1",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("金融客户_厦门_S级用户").createIndex({
|
||||
"手机": NumberInt("1")
|
||||
}, {
|
||||
name: "手机_1",
|
||||
background: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 金融组02250905
|
||||
// ----------------------------
|
||||
db.getCollection("金融组02250905").drop();
|
||||
db.createCollection("金融组02250905");
|
||||
db.getCollection("金融组02250905").createIndex({
|
||||
"姓名": NumberInt("1")
|
||||
}, {
|
||||
name: "姓名_1"
|
||||
});
|
||||
db.getCollection("金融组02250905").createIndex({
|
||||
"手机": NumberInt("1")
|
||||
}, {
|
||||
name: "手机_1"
|
||||
});
|
||||
db.getCollection("金融组02250905").createIndex({
|
||||
"身份证": NumberInt("1")
|
||||
}, {
|
||||
name: "身份证_1"
|
||||
});
|
||||
db.getCollection("金融组02250905").createIndex({
|
||||
"综合评分": NumberInt("-1")
|
||||
}, {
|
||||
name: "综合评分_-1"
|
||||
});
|
||||
db.getCollection("金融组02250905").createIndex({
|
||||
"用户等级": NumberInt("1")
|
||||
}, {
|
||||
name: "用户等级_1"
|
||||
});
|
||||
db.getCollection("金融组02250905").createIndex({
|
||||
"城市": NumberInt("1")
|
||||
}, {
|
||||
name: "城市_1"
|
||||
});
|
||||
509
数据库/KR_KR.js
Normal file
509
数据库/KR_KR.js
Normal file
@@ -0,0 +1,509 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_KR
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:18:19
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 34万HR人力资源经理企业1
|
||||
// ----------------------------
|
||||
db.getCollection("34万HR人力资源经理企业1").drop();
|
||||
db.createCollection("34万HR人力资源经理企业1");
|
||||
db.getCollection("34万HR人力资源经理企业1").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
db.getCollection("34万HR人力资源经理企业1").createIndex({
|
||||
"电话": NumberInt("1")
|
||||
}, {
|
||||
name: "电话_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 34万HR人力资源经理企业3
|
||||
// ----------------------------
|
||||
db.getCollection("34万HR人力资源经理企业3").drop();
|
||||
db.createCollection("34万HR人力资源经理企业3");
|
||||
db.getCollection("34万HR人力资源经理企业3").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 34万HR人力资源经理企业4
|
||||
// ----------------------------
|
||||
db.getCollection("34万HR人力资源经理企业4").drop();
|
||||
db.createCollection("34万HR人力资源经理企业4");
|
||||
db.getCollection("34万HR人力资源经理企业4").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 34万HR人力资源经理企业5
|
||||
// ----------------------------
|
||||
db.getCollection("34万HR人力资源经理企业5").drop();
|
||||
db.createCollection("34万HR人力资源经理企业5");
|
||||
db.getCollection("34万HR人力资源经理企业5").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 51JOB
|
||||
// ----------------------------
|
||||
db.getCollection("51JOB").drop();
|
||||
db.createCollection("51JOB");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 8万条借款数据
|
||||
// ----------------------------
|
||||
db.getCollection("8万条借款数据").drop();
|
||||
db.createCollection("8万条借款数据");
|
||||
db.getCollection("8万条借款数据").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for CSDN用户数据
|
||||
// ----------------------------
|
||||
db.getCollection("CSDN用户数据").drop();
|
||||
db.createCollection("CSDN用户数据");
|
||||
db.getCollection("CSDN用户数据").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
db.getCollection("CSDN用户数据").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
db.getCollection("CSDN用户数据").createIndex({
|
||||
domain: NumberInt("1")
|
||||
}, {
|
||||
name: "domain_1"
|
||||
});
|
||||
db.getCollection("CSDN用户数据").createIndex({
|
||||
created_at: NumberInt("-1")
|
||||
}, {
|
||||
name: "created_at_-1"
|
||||
});
|
||||
db.getCollection("CSDN用户数据").createIndex({
|
||||
data_source: NumberInt("1")
|
||||
}, {
|
||||
name: "data_source_1"
|
||||
});
|
||||
db.getCollection("CSDN用户数据").createIndex({
|
||||
username: NumberInt("1"),
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1_email_1",
|
||||
unique: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for Sheet2
|
||||
// ----------------------------
|
||||
db.getCollection("Sheet2").drop();
|
||||
db.createCollection("Sheet2");
|
||||
db.getCollection("Sheet2").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for pw_members
|
||||
// ----------------------------
|
||||
db.getCollection("pw_members").drop();
|
||||
db.createCollection("pw_members");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for www.jfclub.com
|
||||
// ----------------------------
|
||||
db.getCollection("www.jfclub.com").drop();
|
||||
db.createCollection("www.jfclub.com");
|
||||
db.getCollection("www.jfclub.com").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
db.getCollection("www.jfclub.com").createIndex({
|
||||
u_id: NumberInt("1")
|
||||
}, {
|
||||
name: "u_id_1"
|
||||
});
|
||||
db.getCollection("www.jfclub.com").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
db.getCollection("www.jfclub.com").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
db.getCollection("www.jfclub.com").createIndex({
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "name_1"
|
||||
});
|
||||
db.getCollection("www.jfclub.com").createIndex({
|
||||
email: NumberInt("1"),
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1_name_1"
|
||||
});
|
||||
db.getCollection("www.jfclub.com").createIndex({
|
||||
phone: NumberInt("1"),
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1_name_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 人人网用户数据
|
||||
// ----------------------------
|
||||
db.getCollection("人人网用户数据").drop();
|
||||
db.createCollection("人人网用户数据");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 借贷
|
||||
// ----------------------------
|
||||
db.getCollection("借贷").drop();
|
||||
db.createCollection("借贷");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 全国车主数据集_2020年
|
||||
// ----------------------------
|
||||
db.getCollection("全国车主数据集_2020年").drop();
|
||||
db.createCollection("全国车主数据集_2020年");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 北京本科
|
||||
// ----------------------------
|
||||
db.getCollection("北京本科").drop();
|
||||
db.createCollection("北京本科");
|
||||
db.getCollection("北京本科").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 千脑云电脑_qiannao_com
|
||||
// ----------------------------
|
||||
db.getCollection("千脑云电脑_qiannao_com").drop();
|
||||
db.createCollection("千脑云电脑_qiannao_com");
|
||||
db.getCollection("千脑云电脑_qiannao_com").createIndex({
|
||||
"用户名": NumberInt("1")
|
||||
}, {
|
||||
name: "用户名_1"
|
||||
});
|
||||
db.getCollection("千脑云电脑_qiannao_com").createIndex({
|
||||
"邮箱": NumberInt("1")
|
||||
}, {
|
||||
name: "邮箱_1"
|
||||
});
|
||||
db.getCollection("千脑云电脑_qiannao_com").createIndex({
|
||||
"用户ID": NumberInt("1")
|
||||
}, {
|
||||
name: "用户ID_1"
|
||||
});
|
||||
db.getCollection("千脑云电脑_qiannao_com").createIndex({
|
||||
"创建时间": NumberInt("1")
|
||||
}, {
|
||||
name: "创建时间_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 天涯论坛tianya.cn
|
||||
// ----------------------------
|
||||
db.getCollection("天涯论坛tianya.cn").drop();
|
||||
db.createCollection("天涯论坛tianya.cn");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 情感
|
||||
// ----------------------------
|
||||
db.getCollection("情感").drop();
|
||||
db.createCollection("情感");
|
||||
db.getCollection("情感").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
db.getCollection("情感").createIndex({
|
||||
"手机": NumberInt("1")
|
||||
}, {
|
||||
name: "手机_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 慈溪人才网
|
||||
// ----------------------------
|
||||
db.getCollection("慈溪人才网").drop();
|
||||
db.createCollection("慈溪人才网");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 房产网
|
||||
// ----------------------------
|
||||
db.getCollection("房产网").drop();
|
||||
db.createCollection("房产网");
|
||||
db.getCollection("房产网").createIndex({
|
||||
uid: NumberInt("1")
|
||||
}, {
|
||||
name: "uid_1",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("房产网").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
db.getCollection("房产网").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
db.getCollection("房产网").createIndex({
|
||||
regdate: NumberInt("1")
|
||||
}, {
|
||||
name: "regdate_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 抖音直播粉
|
||||
// ----------------------------
|
||||
db.getCollection("抖音直播粉").drop();
|
||||
db.createCollection("抖音直播粉");
|
||||
db.getCollection("抖音直播粉").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
db.getCollection("抖音直播粉").createIndex({
|
||||
Uid: NumberInt("1")
|
||||
}, {
|
||||
name: "Uid_1"
|
||||
});
|
||||
db.getCollection("抖音直播粉").createIndex({
|
||||
sec_uid: NumberInt("1")
|
||||
}, {
|
||||
name: "sec_uid_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 收藏品微信好友
|
||||
// ----------------------------
|
||||
db.getCollection("收藏品微信好友").drop();
|
||||
db.createCollection("收藏品微信好友");
|
||||
db.getCollection("收藏品微信好友").createIndex({
|
||||
WechatId: NumberInt("1")
|
||||
}, {
|
||||
name: "IX_Kefure_WechatFriend_WechatId"
|
||||
});
|
||||
db.getCollection("收藏品微信好友").createIndex({
|
||||
OwnerWechatId: NumberInt("1")
|
||||
}, {
|
||||
name: "IX_Kefure_WechatFriend_OwnerWechatId"
|
||||
});
|
||||
db.getCollection("收藏品微信好友").createIndex({
|
||||
Phone: NumberInt("1")
|
||||
}, {
|
||||
name: "Phone_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 收藏品用户
|
||||
// ----------------------------
|
||||
db.getCollection("收藏品用户").drop();
|
||||
db.createCollection("收藏品用户");
|
||||
db.getCollection("收藏品用户").createIndex({
|
||||
Id: NumberInt("1")
|
||||
}, {
|
||||
name: "Id_1"
|
||||
});
|
||||
db.getCollection("收藏品用户").createIndex({
|
||||
WechatAccountId: NumberInt("1")
|
||||
}, {
|
||||
name: "WechatAccountId_1"
|
||||
});
|
||||
db.getCollection("收藏品用户").createIndex({
|
||||
WechatId: NumberInt("1")
|
||||
}, {
|
||||
name: "WechatId_1"
|
||||
});
|
||||
db.getCollection("收藏品用户").createIndex({
|
||||
AccountId: NumberInt("1")
|
||||
}, {
|
||||
name: "AccountId_1"
|
||||
});
|
||||
db.getCollection("收藏品用户").createIndex({
|
||||
OwnerWechatId: NumberInt("1")
|
||||
}, {
|
||||
name: "OwnerWechatId_1"
|
||||
});
|
||||
db.getCollection("收藏品用户").createIndex({
|
||||
GroupId: NumberInt("1")
|
||||
}, {
|
||||
name: "GroupId_1"
|
||||
});
|
||||
db.getCollection("收藏品用户").createIndex({
|
||||
Nickname: NumberInt("1")
|
||||
}, {
|
||||
name: "Nickname_1"
|
||||
});
|
||||
db.getCollection("收藏品用户").createIndex({
|
||||
AccountNickname: NumberInt("1")
|
||||
}, {
|
||||
name: "AccountNickname_1"
|
||||
});
|
||||
db.getCollection("收藏品用户").createIndex({
|
||||
OwnerNickname: NumberInt("1")
|
||||
}, {
|
||||
name: "OwnerNickname_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 木蚂蚁munayi_com
|
||||
// ----------------------------
|
||||
db.getCollection("木蚂蚁munayi_com").drop();
|
||||
db.createCollection("木蚂蚁munayi_com");
|
||||
db.getCollection("木蚂蚁munayi_com").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1",
|
||||
unique: true,
|
||||
sparse: true
|
||||
});
|
||||
db.getCollection("木蚂蚁munayi_com").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1",
|
||||
sparse: true
|
||||
});
|
||||
db.getCollection("木蚂蚁munayi_com").createIndex({
|
||||
uid: NumberInt("1")
|
||||
}, {
|
||||
name: "uid_1",
|
||||
sparse: true
|
||||
});
|
||||
db.getCollection("木蚂蚁munayi_com").createIndex({
|
||||
data_hash: NumberInt("1")
|
||||
}, {
|
||||
name: "data_hash_1",
|
||||
unique: true,
|
||||
sparse: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 狂人影子库user
|
||||
// ----------------------------
|
||||
db.getCollection("狂人影子库user").drop();
|
||||
db.createCollection("狂人影子库user");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 珍爱网
|
||||
// ----------------------------
|
||||
db.getCollection("珍爱网").drop();
|
||||
db.createCollection("珍爱网");
|
||||
db.getCollection("珍爱网").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 用户身份凭证数据集
|
||||
// ----------------------------
|
||||
db.getCollection("用户身份凭证数据集").drop();
|
||||
db.createCollection("用户身份凭证数据集");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 网红库
|
||||
// ----------------------------
|
||||
db.getCollection("网红库").drop();
|
||||
db.createCollection("网红库");
|
||||
db.getCollection("网红库").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
db.getCollection("网红库").createIndex({
|
||||
sec_uid: NumberInt("1")
|
||||
}, {
|
||||
name: "sec_uid_1"
|
||||
});
|
||||
db.getCollection("网红库").createIndex({
|
||||
idcard: NumberInt("1")
|
||||
}, {
|
||||
name: "idcard_1"
|
||||
});
|
||||
db.getCollection("网红库").createIndex({
|
||||
collectId: NumberInt("1")
|
||||
}, {
|
||||
name: "collectId_1"
|
||||
});
|
||||
db.getCollection("网红库").createIndex({
|
||||
cateId: NumberInt("1")
|
||||
}, {
|
||||
name: "cateId_1"
|
||||
});
|
||||
db.getCollection("网红库").createIndex({
|
||||
authorId: NumberInt("1")
|
||||
}, {
|
||||
name: "authorId_1"
|
||||
});
|
||||
db.getCollection("网红库").createIndex({
|
||||
uniqueId: NumberInt("1")
|
||||
}, {
|
||||
name: "uniqueId_1"
|
||||
});
|
||||
db.getCollection("网红库").createIndex({
|
||||
phoneNumber: NumberInt("1")
|
||||
}, {
|
||||
name: "phoneNumber_1"
|
||||
});
|
||||
db.getCollection("网红库").createIndex({
|
||||
nickname: NumberInt("1")
|
||||
}, {
|
||||
name: "nickname_1"
|
||||
});
|
||||
db.getCollection("网红库").createIndex({
|
||||
updatedAt: NumberInt("1")
|
||||
}, {
|
||||
name: "updatedAt_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 雅虎用户
|
||||
// ----------------------------
|
||||
db.getCollection("雅虎用户").drop();
|
||||
db.createCollection("雅虎用户");
|
||||
31
数据库/KR_Linkedln.js
Normal file
31
数据库/KR_Linkedln.js
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_Linkedln
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:18:28
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for linkedin
|
||||
// ----------------------------
|
||||
db.getCollection("linkedin").drop();
|
||||
db.createCollection("linkedin");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
31
数据库/KR_京东.js
Normal file
31
数据库/KR_京东.js
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_京东
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:19:11
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for jd_com
|
||||
// ----------------------------
|
||||
db.getCollection("jd_com").drop();
|
||||
db.createCollection("jd_com");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
37
数据库/KR_人才库.js
Normal file
37
数据库/KR_人才库.js
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_人才库
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:19:59
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 51JOB
|
||||
// ----------------------------
|
||||
db.getCollection("51JOB").drop();
|
||||
db.createCollection("51JOB");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 慈溪人才网
|
||||
// ----------------------------
|
||||
db.getCollection("慈溪人才网").drop();
|
||||
db.createCollection("慈溪人才网");
|
||||
142
数据库/KR_企业.js
Normal file
142
数据库/KR_企业.js
Normal file
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_企业
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:19:44
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 企业400号段数据
|
||||
// ----------------------------
|
||||
db.getCollection("企业400号段数据").drop();
|
||||
db.createCollection("企业400号段数据");
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
ID: NumberInt("1")
|
||||
}, {
|
||||
name: "ID_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
"企业名称": NumberInt("1")
|
||||
}, {
|
||||
name: "企业名称_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
"400号码": NumberInt("1")
|
||||
}, {
|
||||
name: "400号码_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
"联系人": NumberInt("1")
|
||||
}, {
|
||||
name: "联系人_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
"手机号码": NumberInt("1")
|
||||
}, {
|
||||
name: "手机号码_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
"表名": NumberInt("1")
|
||||
}, {
|
||||
name: "表名_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
"导入时间": NumberInt("-1")
|
||||
}, {
|
||||
name: "导入时间_-1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
nid: NumberInt("1")
|
||||
}, {
|
||||
name: "nid_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
EnterpriseName: NumberInt("1")
|
||||
}, {
|
||||
name: "EnterpriseName_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
Number400: NumberInt("1")
|
||||
}, {
|
||||
name: "Number400_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
LinkMan: NumberInt("1")
|
||||
}, {
|
||||
name: "LinkMan_1"
|
||||
});
|
||||
db.getCollection("企业400号段数据").createIndex({
|
||||
Mobile: NumberInt("1")
|
||||
}, {
|
||||
name: "Mobile_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 统一用户资产表
|
||||
// ----------------------------
|
||||
db.getCollection("统一用户资产表").drop();
|
||||
db.createCollection("统一用户资产表");
|
||||
db.getCollection("统一用户资产表").createIndex({
|
||||
"用户唯一ID": NumberInt("1")
|
||||
}, {
|
||||
name: "用户唯一ID_1"
|
||||
});
|
||||
db.getCollection("统一用户资产表").createIndex({
|
||||
"基础信息.手机号": NumberInt("1")
|
||||
}, {
|
||||
name: "基础信息.手机号_1"
|
||||
});
|
||||
db.getCollection("统一用户资产表").createIndex({
|
||||
"基础信息.邮箱": NumberInt("1")
|
||||
}, {
|
||||
name: "基础信息.邮箱_1"
|
||||
});
|
||||
db.getCollection("统一用户资产表").createIndex({
|
||||
"企业信息.企业ID": NumberInt("1")
|
||||
}, {
|
||||
name: "企业信息.企业ID_1"
|
||||
});
|
||||
db.getCollection("统一用户资产表").createIndex({
|
||||
"企业信息.400号码": NumberInt("1")
|
||||
}, {
|
||||
name: "企业信息.400号码_1"
|
||||
});
|
||||
db.getCollection("统一用户资产表").createIndex({
|
||||
"资产概览.总资产价值": NumberInt("-1")
|
||||
}, {
|
||||
name: "资产概览.总资产价值_-1"
|
||||
});
|
||||
db.getCollection("统一用户资产表").createIndex({
|
||||
"资产概览.资产等级": NumberInt("1")
|
||||
}, {
|
||||
name: "资产概览.资产等级_1"
|
||||
});
|
||||
db.getCollection("统一用户资产表").createIndex({
|
||||
"用户类型": NumberInt("1")
|
||||
}, {
|
||||
name: "用户类型_1"
|
||||
});
|
||||
db.getCollection("统一用户资产表").createIndex({
|
||||
"创建时间": NumberInt("-1")
|
||||
}, {
|
||||
name: "创建时间_-1"
|
||||
});
|
||||
115
数据库/KR_企业名录.js
Normal file
115
数据库/KR_企业名录.js
Normal file
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_企业名录
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:19:51
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 中国医院名录_copy1
|
||||
// ----------------------------
|
||||
db.getCollection("中国医院名录_copy1").drop();
|
||||
db.createCollection("中国医院名录_copy1");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 企业及个体工商目录
|
||||
// ----------------------------
|
||||
db.getCollection("企业及个体工商目录").drop();
|
||||
db.createCollection("企业及个体工商目录");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 企业名录
|
||||
// ----------------------------
|
||||
db.getCollection("企业名录").drop();
|
||||
db.createCollection("企业名录");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 四川企业老板
|
||||
// ----------------------------
|
||||
db.getCollection("四川企业老板").drop();
|
||||
db.createCollection("四川企业老板");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东工商企业库1
|
||||
// ----------------------------
|
||||
db.getCollection("广东工商企业库1").drop();
|
||||
db.createCollection("广东工商企业库1");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东工商企业库2
|
||||
// ----------------------------
|
||||
db.getCollection("广东工商企业库2").drop();
|
||||
db.createCollection("广东工商企业库2");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东工商企业库3
|
||||
// ----------------------------
|
||||
db.getCollection("广东工商企业库3").drop();
|
||||
db.createCollection("广东工商企业库3");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东工商企业库4
|
||||
// ----------------------------
|
||||
db.getCollection("广东工商企业库4").drop();
|
||||
db.createCollection("广东工商企业库4");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东工商企业库5
|
||||
// ----------------------------
|
||||
db.getCollection("广东工商企业库5").drop();
|
||||
db.createCollection("广东工商企业库5");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东工商企业库6
|
||||
// ----------------------------
|
||||
db.getCollection("广东工商企业库6").drop();
|
||||
db.createCollection("广东工商企业库6");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东工商企业库7
|
||||
// ----------------------------
|
||||
db.getCollection("广东工商企业库7").drop();
|
||||
db.createCollection("广东工商企业库7");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 行政区划代码
|
||||
// ----------------------------
|
||||
db.getCollection("行政区划代码").drop();
|
||||
db.createCollection("行政区划代码");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 表1
|
||||
// ----------------------------
|
||||
db.getCollection("表1").drop();
|
||||
db.createCollection("表1");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 表2
|
||||
// ----------------------------
|
||||
db.getCollection("表2").drop();
|
||||
db.createCollection("表2");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 销售额3000万元-5000万元企业名录
|
||||
// ----------------------------
|
||||
db.getCollection("销售额3000万元-5000万元企业名录").drop();
|
||||
db.createCollection("销售额3000万元-5000万元企业名录");
|
||||
228
数据库/KR_卡若私域.js
Normal file
228
数据库/KR_卡若私域.js
Normal file
@@ -0,0 +1,228 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_卡若私域
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:19:24
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 存客宝流量池分类
|
||||
// ----------------------------
|
||||
db.getCollection("存客宝流量池分类").drop();
|
||||
db.createCollection("存客宝流量池分类");
|
||||
db.getCollection("存客宝流量池分类").createIndex({
|
||||
province: NumberInt("1"),
|
||||
wechat: NumberInt("1"),
|
||||
phoneNumber: NumberInt("1"),
|
||||
createdAt: NumberInt("1")
|
||||
}, {
|
||||
name: "user_province_wechat_phone_number_created_at"
|
||||
});
|
||||
db.getCollection("存客宝流量池分类").createIndex({
|
||||
province: NumberInt("1"),
|
||||
wechat: NumberInt("1"),
|
||||
phoneNumber: NumberInt("1"),
|
||||
wechatIsOpen: NumberInt("1"),
|
||||
createdAt: NumberInt("1")
|
||||
}, {
|
||||
name: "user_province_wechat_phone_number_wechat_is_open_created_at"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 存客宝流量池分类2
|
||||
// ----------------------------
|
||||
db.getCollection("存客宝流量池分类2").drop();
|
||||
db.createCollection("存客宝流量池分类2");
|
||||
db.getCollection("存客宝流量池分类2").createIndex({
|
||||
source: NumberInt("1"),
|
||||
wechat: NumberInt("1")
|
||||
}, {
|
||||
name: "user_source_wechat",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("存客宝流量池分类2").createIndex({
|
||||
source: NumberInt("1"),
|
||||
phoneNumber: NumberInt("1")
|
||||
}, {
|
||||
name: "user_source_phone_number",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("存客宝流量池分类2").createIndex({
|
||||
province: NumberInt("1")
|
||||
}, {
|
||||
name: "user_province"
|
||||
});
|
||||
db.getCollection("存客宝流量池分类2").createIndex({
|
||||
wechat: NumberInt("1")
|
||||
}, {
|
||||
name: "user_wechat"
|
||||
});
|
||||
db.getCollection("存客宝流量池分类2").createIndex({
|
||||
phoneNumber: NumberInt("1")
|
||||
}, {
|
||||
name: "user_phone_number"
|
||||
});
|
||||
db.getCollection("存客宝流量池分类2").createIndex({
|
||||
wechatIsOpen: NumberInt("1")
|
||||
}, {
|
||||
name: "user_wechat_is_open"
|
||||
});
|
||||
db.getCollection("存客宝流量池分类2").createIndex({
|
||||
createdAt: NumberInt("1")
|
||||
}, {
|
||||
name: "user_created_at"
|
||||
});
|
||||
db.getCollection("存客宝流量池分类2").createIndex({
|
||||
jdIsOpen: NumberInt("1")
|
||||
}, {
|
||||
name: "user_jd_is_open"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 存客宝采集网红
|
||||
// ----------------------------
|
||||
db.getCollection("存客宝采集网红").drop();
|
||||
db.createCollection("存客宝采集网红");
|
||||
db.getCollection("存客宝采集网红").createIndex({
|
||||
OwnerWechatId: NumberInt("1"),
|
||||
Phone: NumberInt("1"),
|
||||
Alias: NumberInt("1")
|
||||
}, {
|
||||
name: "IX_Kefure_WechatFriend_OwnerWechatId"
|
||||
});
|
||||
db.getCollection("存客宝采集网红").createIndex({
|
||||
WechatId: NumberInt("1"),
|
||||
IsSend: NumberInt("1"),
|
||||
IsDeleted: NumberInt("1"),
|
||||
Gender: NumberInt("1"),
|
||||
Nickname: NumberInt("1")
|
||||
}, {
|
||||
name: "IX_Kefure_WechatFriend_WechatId_IsSend"
|
||||
});
|
||||
db.getCollection("存客宝采集网红").createIndex({
|
||||
WechatAccountId: NumberInt("1")
|
||||
}, {
|
||||
name: "WechatAccountId"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 存客宝采集网红有微信
|
||||
// ----------------------------
|
||||
db.getCollection("存客宝采集网红有微信").drop();
|
||||
db.createCollection("存客宝采集网红有微信");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 老坑爹商店 shop.lkdie.com
|
||||
// ----------------------------
|
||||
db.getCollection("老坑爹商店 shop.lkdie.com").drop();
|
||||
db.createCollection("老坑爹商店 shop.lkdie.com");
|
||||
db.getCollection("老坑爹商店 shop.lkdie.com").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("老坑爹商店 shop.lkdie.com").createIndex({
|
||||
nickname: NumberInt("1")
|
||||
}, {
|
||||
name: "nickname",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("老坑爹商店 shop.lkdie.com").createIndex({
|
||||
updatedTime: NumberInt("1")
|
||||
}, {
|
||||
name: "updatedTime"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 老坑爹论坛www.lkdie.com 会员
|
||||
// ----------------------------
|
||||
db.getCollection("老坑爹论坛www.lkdie.com 会员").drop();
|
||||
db.createCollection("老坑爹论坛www.lkdie.com 会员");
|
||||
db.getCollection("老坑爹论坛www.lkdie.com 会员").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("老坑爹论坛www.lkdie.com 会员").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 黑科技www.quwanzhi.com 付款邮箱
|
||||
// ----------------------------
|
||||
db.getCollection("黑科技www.quwanzhi.com 付款邮箱").drop();
|
||||
db.createCollection("黑科技www.quwanzhi.com 付款邮箱");
|
||||
db.getCollection("黑科技www.quwanzhi.com 付款邮箱").createIndex({
|
||||
trade_no: NumberInt("1")
|
||||
}, {
|
||||
name: "tradeNo"
|
||||
});
|
||||
db.getCollection("黑科技www.quwanzhi.com 付款邮箱").createIndex({
|
||||
zid: NumberInt("1")
|
||||
}, {
|
||||
name: "zid"
|
||||
});
|
||||
db.getCollection("黑科技www.quwanzhi.com 付款邮箱").createIndex({
|
||||
tid: NumberInt("1")
|
||||
}, {
|
||||
name: "tid"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 黑科技www.quwanzhi.com 发卡邮箱
|
||||
// ----------------------------
|
||||
db.getCollection("黑科技www.quwanzhi.com 发卡邮箱").drop();
|
||||
db.createCollection("黑科技www.quwanzhi.com 发卡邮箱");
|
||||
db.getCollection("黑科技www.quwanzhi.com 发卡邮箱").createIndex({
|
||||
zid: NumberInt("1")
|
||||
}, {
|
||||
name: "zid"
|
||||
});
|
||||
db.getCollection("黑科技www.quwanzhi.com 发卡邮箱").createIndex({
|
||||
input: NumberInt("1")
|
||||
}, {
|
||||
name: "input"
|
||||
});
|
||||
db.getCollection("黑科技www.quwanzhi.com 发卡邮箱").createIndex({
|
||||
userid: NumberInt("1")
|
||||
}, {
|
||||
name: "userid"
|
||||
});
|
||||
db.getCollection("黑科技www.quwanzhi.com 发卡邮箱").createIndex({
|
||||
tradeno: NumberInt("1")
|
||||
}, {
|
||||
name: "tradeno"
|
||||
});
|
||||
db.getCollection("黑科技www.quwanzhi.com 发卡邮箱").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id"
|
||||
});
|
||||
db.getCollection("黑科技www.quwanzhi.com 发卡邮箱").createIndex({
|
||||
tid: NumberInt("1")
|
||||
}, {
|
||||
name: "tid"
|
||||
});
|
||||
122
数据库/KR_商城.js
Normal file
122
数据库/KR_商城.js
Normal file
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_商城
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:20:13
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 21年贝蒂喜订单整合
|
||||
// ----------------------------
|
||||
db.getCollection("21年贝蒂喜订单整合").drop();
|
||||
db.createCollection("21年贝蒂喜订单整合");
|
||||
db.getCollection("21年贝蒂喜订单整合").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
db.getCollection("21年贝蒂喜订单整合").createIndex({
|
||||
"特权订金订单id": NumberInt("1")
|
||||
}, {
|
||||
name: "特权订金订单id_1"
|
||||
});
|
||||
db.getCollection("21年贝蒂喜订单整合").createIndex({
|
||||
"新零售导购门店id": NumberInt("1")
|
||||
}, {
|
||||
name: "新零售导购门店id_1"
|
||||
});
|
||||
db.getCollection("21年贝蒂喜订单整合").createIndex({
|
||||
"新零售发货门店id": NumberInt("1")
|
||||
}, {
|
||||
name: "新零售发货门店id_1"
|
||||
});
|
||||
db.getCollection("21年贝蒂喜订单整合").createIndex({
|
||||
"新零售成交门店id": NumberInt("1")
|
||||
}, {
|
||||
name: "新零售成交门店id_1"
|
||||
});
|
||||
db.getCollection("21年贝蒂喜订单整合").createIndex({
|
||||
"新零售成交经销商id": NumberInt("1")
|
||||
}, {
|
||||
name: "新零售成交经销商id_1"
|
||||
});
|
||||
db.getCollection("21年贝蒂喜订单整合").createIndex({
|
||||
"店铺Id": NumberInt("1")
|
||||
}, {
|
||||
name: "店铺Id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 凡客诚品_vancl.com
|
||||
// ----------------------------
|
||||
db.getCollection("凡客诚品_vancl.com").drop();
|
||||
db.createCollection("凡客诚品_vancl.com");
|
||||
db.getCollection("凡客诚品_vancl.com").createIndex({
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "name_1"
|
||||
});
|
||||
db.getCollection("凡客诚品_vancl.com").createIndex({
|
||||
"数据来源": NumberInt("1"),
|
||||
"导入时间": NumberInt("-1")
|
||||
}, {
|
||||
name: "数据来源_1_导入时间_-1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 嘟嘟牛
|
||||
// ----------------------------
|
||||
db.getCollection("嘟嘟牛").drop();
|
||||
db.createCollection("嘟嘟牛");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 嘟嘟牛 本地同城
|
||||
// ----------------------------
|
||||
db.getCollection("嘟嘟牛 本地同城").drop();
|
||||
db.createCollection("嘟嘟牛 本地同城");
|
||||
db.getCollection("嘟嘟牛 本地同城").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
db.getCollection("嘟嘟牛 本地同城").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 小米 xiaomi_com
|
||||
// ----------------------------
|
||||
db.getCollection("小米 xiaomi_com").drop();
|
||||
db.createCollection("小米 xiaomi_com");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 购物-北京一电购公司2月整理版30万
|
||||
// ----------------------------
|
||||
db.getCollection("购物-北京一电购公司2月整理版30万").drop();
|
||||
db.createCollection("购物-北京一电购公司2月整理版30万");
|
||||
db.getCollection("购物-北京一电购公司2月整理版30万").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
359
数据库/KR_国外.js
Normal file
359
数据库/KR_国外.js
Normal file
@@ -0,0 +1,359 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_国外
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:18:56
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for Yandex俄罗斯百度用户数据
|
||||
// ----------------------------
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").drop();
|
||||
db.createCollection("Yandex俄罗斯百度用户数据");
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
domain: NumberInt("1")
|
||||
}, {
|
||||
name: "domain_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
password_strength: NumberInt("1")
|
||||
}, {
|
||||
name: "password_strength_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
country: NumberInt("1")
|
||||
}, {
|
||||
name: "country_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
service_provider: NumberInt("1")
|
||||
}, {
|
||||
name: "service_provider_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
created_at: NumberInt("-1")
|
||||
}, {
|
||||
name: "created_at_-1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
data_source: NumberInt("1")
|
||||
}, {
|
||||
name: "data_source_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
email: NumberInt("1"),
|
||||
password: NumberInt("1")
|
||||
}, {
|
||||
name: "email_password_unique",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯百度用户数据").createIndex({
|
||||
"$**": "text"
|
||||
}, {
|
||||
name: "text_search",
|
||||
weights: {
|
||||
email: NumberInt("1"),
|
||||
username: NumberInt("1")
|
||||
},
|
||||
default_language: "english",
|
||||
language_override: "language",
|
||||
textIndexVersion: NumberInt("3")
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for Yandex俄罗斯谷歌用户数据
|
||||
// ----------------------------
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").drop();
|
||||
db.createCollection("Yandex俄罗斯谷歌用户数据");
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
domain: NumberInt("1")
|
||||
}, {
|
||||
name: "domain_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
password_strength: NumberInt("1")
|
||||
}, {
|
||||
name: "password_strength_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
country: NumberInt("1")
|
||||
}, {
|
||||
name: "country_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
service_provider: NumberInt("1")
|
||||
}, {
|
||||
name: "service_provider_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
created_at: NumberInt("-1")
|
||||
}, {
|
||||
name: "created_at_-1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
data_source: NumberInt("1")
|
||||
}, {
|
||||
name: "data_source_1"
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
email: NumberInt("1"),
|
||||
password: NumberInt("1")
|
||||
}, {
|
||||
name: "email_password_unique",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("Yandex俄罗斯谷歌用户数据").createIndex({
|
||||
"$**": "text"
|
||||
}, {
|
||||
name: "text_search",
|
||||
weights: {
|
||||
email: NumberInt("1"),
|
||||
username: NumberInt("1")
|
||||
},
|
||||
default_language: "english",
|
||||
language_override: "language",
|
||||
textIndexVersion: NumberInt("3")
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for www.angeldiet.co.kr 1
|
||||
// ----------------------------
|
||||
db.getCollection("www.angeldiet.co.kr 1").drop();
|
||||
db.createCollection("www.angeldiet.co.kr 1");
|
||||
db.getCollection("www.angeldiet.co.kr 1").createIndex({
|
||||
ID: NumberInt("1")
|
||||
}, {
|
||||
name: "ID_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for www.angeldiet.co.kr 2
|
||||
// ----------------------------
|
||||
db.getCollection("www.angeldiet.co.kr 2").drop();
|
||||
db.createCollection("www.angeldiet.co.kr 2");
|
||||
db.getCollection("www.angeldiet.co.kr 2").createIndex({
|
||||
ID: NumberInt("1")
|
||||
}, {
|
||||
name: "ID_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for www.bookoa.com(韩国学术出版)
|
||||
// ----------------------------
|
||||
db.getCollection("www.bookoa.com(韩国学术出版)").drop();
|
||||
db.createCollection("www.bookoa.com(韩国学术出版)");
|
||||
db.getCollection("www.bookoa.com(韩国学术出版)").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
db.getCollection("www.bookoa.com(韩国学术出版)").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
db.getCollection("www.bookoa.com(韩国学术出版)").createIndex({
|
||||
hphone: NumberInt("1")
|
||||
}, {
|
||||
name: "hphone_1"
|
||||
});
|
||||
db.getCollection("www.bookoa.com(韩国学术出版)").createIndex({
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "name_1"
|
||||
});
|
||||
db.getCollection("www.bookoa.com(韩国学术出版)").createIndex({
|
||||
email: NumberInt("1"),
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1_name_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_APP数据
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_APP数据").drop();
|
||||
db.createCollection("卡塔卡银行_APP数据");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_交易明细
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_交易明细").drop();
|
||||
db.createCollection("卡塔卡银行_交易明细");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_交易明细临时
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_交易明细临时").drop();
|
||||
db.createCollection("卡塔卡银行_交易明细临时");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_卡主表
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_卡主表").drop();
|
||||
db.createCollection("卡塔卡银行_卡主表");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_卡列表
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_卡列表").drop();
|
||||
db.createCollection("卡塔卡银行_卡列表");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_审计主表
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_审计主表").drop();
|
||||
db.createCollection("卡塔卡银行_审计主表");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_客户
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_客户").drop();
|
||||
db.createCollection("卡塔卡银行_客户");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_客户主表
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_客户主表").drop();
|
||||
db.createCollection("卡塔卡银行_客户主表");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_收款人主表
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_收款人主表").drop();
|
||||
db.createCollection("卡塔卡银行_收款人主表");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_用户档案
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_用户档案").drop();
|
||||
db.createCollection("卡塔卡银行_用户档案");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_申请记录
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_申请记录").drop();
|
||||
db.createCollection("卡塔卡银行_申请记录");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_电子对账单邮箱
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_电子对账单邮箱").drop();
|
||||
db.createCollection("卡塔卡银行_电子对账单邮箱");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_订单客户明细
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_订单客户明细").drop();
|
||||
db.createCollection("卡塔卡银行_订单客户明细");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_账户主表
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_账户主表").drop();
|
||||
db.createCollection("卡塔卡银行_账户主表");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_身份证变更审计
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_身份证变更审计").drop();
|
||||
db.createCollection("卡塔卡银行_身份证变更审计");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卡塔卡银行_黑名单用户
|
||||
// ----------------------------
|
||||
db.getCollection("卡塔卡银行_黑名单用户").drop();
|
||||
db.createCollection("卡塔卡银行_黑名单用户");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 台湾财经电视台
|
||||
// ----------------------------
|
||||
db.getCollection("台湾财经电视台").drop();
|
||||
db.createCollection("台湾财经电视台");
|
||||
db.getCollection("台湾财经电视台").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
db.getCollection("台湾财经电视台").createIndex({
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "name_1"
|
||||
});
|
||||
db.getCollection("台湾财经电视台").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
db.getCollection("台湾财经电视台").createIndex({
|
||||
source: NumberInt("1")
|
||||
}, {
|
||||
name: "source_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 土耳其公民
|
||||
// ----------------------------
|
||||
db.getCollection("土耳其公民").drop();
|
||||
db.createCollection("土耳其公民");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 社工库_1.7G_www.comicstorm.co.kr 85w_1
|
||||
// ----------------------------
|
||||
db.getCollection("社工库_1.7G_www.comicstorm.co.kr 85w_1").drop();
|
||||
db.createCollection("社工库_1.7G_www.comicstorm.co.kr 85w_1");
|
||||
db.getCollection("社工库_1.7G_www.comicstorm.co.kr 85w_1").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 社工库_1.7G_www.hacker.co.kr 140W_140W
|
||||
// ----------------------------
|
||||
db.getCollection("社工库_1.7G_www.hacker.co.kr 140W_140W").drop();
|
||||
db.createCollection("社工库_1.7G_www.hacker.co.kr 140W_140W");
|
||||
db.getCollection("社工库_1.7G_www.hacker.co.kr 140W_140W").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
618
数据库/KR_存客宝.js
Normal file
618
数据库/KR_存客宝.js
Normal file
@@ -0,0 +1,618 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_存客宝
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:18:41
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_AccountWechat
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_AccountWechat").drop();
|
||||
db.createCollection("cunkebao_AccountWechat");
|
||||
db.getCollection("cunkebao_AccountWechat").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_DownloadVideoSchedule
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_DownloadVideoSchedule").drop();
|
||||
db.createCollection("cunkebao_DownloadVideoSchedule");
|
||||
db.getCollection("cunkebao_DownloadVideoSchedule").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_FriendMessageTask
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_FriendMessageTask").drop();
|
||||
db.createCollection("cunkebao_FriendMessageTask");
|
||||
db.getCollection("cunkebao_FriendMessageTask").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_FriendMessageTpl
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_FriendMessageTpl").drop();
|
||||
db.createCollection("cunkebao_FriendMessageTpl");
|
||||
db.getCollection("cunkebao_FriendMessageTpl").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_FriendRequestConfig
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_FriendRequestConfig").drop();
|
||||
db.createCollection("cunkebao_FriendRequestConfig");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_FriendRequestTaskScan
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_FriendRequestTaskScan").drop();
|
||||
db.createCollection("cunkebao_FriendRequestTaskScan");
|
||||
db.getCollection("cunkebao_FriendRequestTaskScan").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_FrontSession
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_FrontSession").drop();
|
||||
db.createCollection("cunkebao_FrontSession");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_JdPromotionSite
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_JdPromotionSite").drop();
|
||||
db.createCollection("cunkebao_JdPromotionSite");
|
||||
db.getCollection("cunkebao_JdPromotionSite").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_JdSocialMedia
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_JdSocialMedia").drop();
|
||||
db.createCollection("cunkebao_JdSocialMedia");
|
||||
db.getCollection("cunkebao_JdSocialMedia").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_MaterialLib
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_MaterialLib").drop();
|
||||
db.createCollection("cunkebao_MaterialLib");
|
||||
db.getCollection("cunkebao_MaterialLib").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_MaterialPushLog
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_MaterialPushLog").drop();
|
||||
db.createCollection("cunkebao_MaterialPushLog");
|
||||
db.getCollection("cunkebao_MaterialPushLog").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_MiniProgrameLib
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_MiniProgrameLib").drop();
|
||||
db.createCollection("cunkebao_MiniProgrameLib");
|
||||
db.getCollection("cunkebao_MiniProgrameLib").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_PartTimer
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_PartTimer").drop();
|
||||
db.createCollection("cunkebao_PartTimer");
|
||||
db.getCollection("cunkebao_PartTimer").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_Poster
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_Poster").drop();
|
||||
db.createCollection("cunkebao_Poster");
|
||||
db.getCollection("cunkebao_Poster").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysAttach
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysAttach").drop();
|
||||
db.createCollection("cunkebao_SysAttach");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysAttach_20250228
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysAttach_20250228").drop();
|
||||
db.createCollection("cunkebao_SysAttach_20250228");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysAttach_copy
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysAttach_copy").drop();
|
||||
db.createCollection("cunkebao_SysAttach_copy");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysDataSource
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysDataSource").drop();
|
||||
db.createCollection("cunkebao_SysDataSource");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysModule
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysModule").drop();
|
||||
db.createCollection("cunkebao_SysModule");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysNavItem
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysNavItem").drop();
|
||||
db.createCollection("cunkebao_SysNavItem");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysObject
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysObject").drop();
|
||||
db.createCollection("cunkebao_SysObject");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysOperatorPermission
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysOperatorPermission").drop();
|
||||
db.createCollection("cunkebao_SysOperatorPermission");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysRelatedList
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysRelatedList").drop();
|
||||
db.createCollection("cunkebao_SysRelatedList");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysShare
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysShare").drop();
|
||||
db.createCollection("cunkebao_SysShare");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysSolution
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysSolution").drop();
|
||||
db.createCollection("cunkebao_SysSolution");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_SysUI
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_SysUI").drop();
|
||||
db.createCollection("cunkebao_SysUI");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_UserIncome
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_UserIncome").drop();
|
||||
db.createCollection("cunkebao_UserIncome");
|
||||
db.getCollection("cunkebao_UserIncome").createIndex({
|
||||
lId: NumberInt("1")
|
||||
}, {
|
||||
name: "lId_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_administrator_permissions
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_administrator_permissions").drop();
|
||||
db.createCollection("cunkebao_v3_ck_administrator_permissions");
|
||||
db.getCollection("cunkebao_v3_ck_administrator_permissions").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_administrators
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_administrators").drop();
|
||||
db.createCollection("cunkebao_v3_ck_administrators");
|
||||
db.getCollection("cunkebao_v3_ck_administrators").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_call_recording
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_call_recording").drop();
|
||||
db.createCollection("cunkebao_v3_ck_call_recording");
|
||||
db.getCollection("cunkebao_v3_ck_call_recording").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_company
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_company").drop();
|
||||
db.createCollection("cunkebao_v3_ck_company");
|
||||
db.getCollection("cunkebao_v3_ck_company").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_customer_acquisition_task
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_customer_acquisition_task").drop();
|
||||
db.createCollection("cunkebao_v3_ck_customer_acquisition_task");
|
||||
db.getCollection("cunkebao_v3_ck_customer_acquisition_task").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_flow_package_order
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_flow_package_order").drop();
|
||||
db.createCollection("cunkebao_v3_ck_flow_package_order");
|
||||
db.getCollection("cunkebao_v3_ck_flow_package_order").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_flow_usage_record
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_flow_usage_record").drop();
|
||||
db.createCollection("cunkebao_v3_ck_flow_usage_record");
|
||||
db.getCollection("cunkebao_v3_ck_flow_usage_record").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_jd_promotion_site
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_jd_promotion_site").drop();
|
||||
db.createCollection("cunkebao_v3_ck_jd_promotion_site");
|
||||
db.getCollection("cunkebao_v3_ck_jd_promotion_site").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_jd_social_media
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_jd_social_media").drop();
|
||||
db.createCollection("cunkebao_v3_ck_jd_social_media");
|
||||
db.getCollection("cunkebao_v3_ck_jd_social_media").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_menus
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_menus").drop();
|
||||
db.createCollection("cunkebao_v3_ck_menus");
|
||||
db.getCollection("cunkebao_v3_ck_menus").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_plan_scene
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_plan_scene").drop();
|
||||
db.createCollection("cunkebao_v3_ck_plan_scene");
|
||||
db.getCollection("cunkebao_v3_ck_plan_scene").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_plan_tags
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_plan_tags").drop();
|
||||
db.createCollection("cunkebao_v3_ck_plan_tags");
|
||||
db.getCollection("cunkebao_v3_ck_plan_tags").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_task_customer
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_task_customer").drop();
|
||||
db.createCollection("cunkebao_v3_ck_task_customer");
|
||||
db.getCollection("cunkebao_v3_ck_task_customer").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_traffic_pool
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_traffic_pool").drop();
|
||||
db.createCollection("cunkebao_v3_ck_traffic_pool");
|
||||
db.getCollection("cunkebao_v3_ck_traffic_pool").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_traffic_source
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_traffic_source").drop();
|
||||
db.createCollection("cunkebao_v3_ck_traffic_source");
|
||||
db.getCollection("cunkebao_v3_ck_traffic_source").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_traffic_source_package
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_traffic_source_package").drop();
|
||||
db.createCollection("cunkebao_v3_ck_traffic_source_package");
|
||||
db.getCollection("cunkebao_v3_ck_traffic_source_package").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_traffic_source_package_item
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_traffic_source_package_item").drop();
|
||||
db.createCollection("cunkebao_v3_ck_traffic_source_package_item");
|
||||
db.getCollection("cunkebao_v3_ck_traffic_source_package_item").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_traffic_tag
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_traffic_tag").drop();
|
||||
db.createCollection("cunkebao_v3_ck_traffic_tag");
|
||||
db.getCollection("cunkebao_v3_ck_traffic_tag").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_user_flow_package
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_user_flow_package").drop();
|
||||
db.createCollection("cunkebao_v3_ck_user_flow_package");
|
||||
db.getCollection("cunkebao_v3_ck_user_flow_package").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_user_portrait
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_user_portrait").drop();
|
||||
db.createCollection("cunkebao_v3_ck_user_portrait");
|
||||
db.getCollection("cunkebao_v3_ck_user_portrait").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_vendor_project
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_vendor_project").drop();
|
||||
db.createCollection("cunkebao_v3_ck_vendor_project");
|
||||
db.getCollection("cunkebao_v3_ck_vendor_project").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_wechat_friendship
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_wechat_friendship").drop();
|
||||
db.createCollection("cunkebao_v3_ck_wechat_friendship");
|
||||
db.getCollection("cunkebao_v3_ck_wechat_friendship").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_wechat_group_member
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_wechat_group_member").drop();
|
||||
db.createCollection("cunkebao_v3_ck_wechat_group_member");
|
||||
db.getCollection("cunkebao_v3_ck_wechat_group_member").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_wechat_tag
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_wechat_tag").drop();
|
||||
db.createCollection("cunkebao_v3_ck_wechat_tag");
|
||||
db.getCollection("cunkebao_v3_ck_wechat_tag").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_workbench
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_workbench").drop();
|
||||
db.createCollection("cunkebao_v3_ck_workbench");
|
||||
db.getCollection("cunkebao_v3_ck_workbench").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_workbench_group_create_item
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_workbench_group_create_item").drop();
|
||||
db.createCollection("cunkebao_v3_ck_workbench_group_create_item");
|
||||
db.getCollection("cunkebao_v3_ck_workbench_group_create_item").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_workbench_group_push
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_workbench_group_push").drop();
|
||||
db.createCollection("cunkebao_v3_ck_workbench_group_push");
|
||||
db.getCollection("cunkebao_v3_ck_workbench_group_push").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_ck_workbench_group_push_item
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_ck_workbench_group_push_item").drop();
|
||||
db.createCollection("cunkebao_v3_ck_workbench_group_push_item");
|
||||
db.getCollection("cunkebao_v3_ck_workbench_group_push_item").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_s2_allot_rule
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_s2_allot_rule").drop();
|
||||
db.createCollection("cunkebao_v3_s2_allot_rule");
|
||||
db.getCollection("cunkebao_v3_s2_allot_rule").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for cunkebao_v3_s2_device_group
|
||||
// ----------------------------
|
||||
db.getCollection("cunkebao_v3_s2_device_group").drop();
|
||||
db.createCollection("cunkebao_v3_s2_device_group");
|
||||
db.getCollection("cunkebao_v3_s2_device_group").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 好友关系网络汇总表
|
||||
// ----------------------------
|
||||
db.getCollection("好友关系网络汇总表").drop();
|
||||
db.createCollection("好友关系网络汇总表");
|
||||
db.getCollection("好友关系网络汇总表").createIndex({
|
||||
"用户微信ID": NumberInt("1")
|
||||
}, {
|
||||
name: "用户微信ID_1"
|
||||
});
|
||||
db.getCollection("好友关系网络汇总表").createIndex({
|
||||
"好友微信ID": NumberInt("1")
|
||||
}, {
|
||||
name: "好友微信ID_1"
|
||||
});
|
||||
db.getCollection("好友关系网络汇总表").createIndex({
|
||||
"关系等级": NumberInt("1")
|
||||
}, {
|
||||
name: "关系等级_1"
|
||||
});
|
||||
db.getCollection("好友关系网络汇总表").createIndex({
|
||||
"RFM评分.总分": NumberInt("1")
|
||||
}, {
|
||||
name: "RFM评分.总分_1"
|
||||
});
|
||||
db.getCollection("好友关系网络汇总表").createIndex({
|
||||
"关系强度评分": NumberInt("1")
|
||||
}, {
|
||||
name: "关系强度评分_1"
|
||||
});
|
||||
db.getCollection("好友关系网络汇总表").createIndex({
|
||||
"公司ID": NumberInt("1")
|
||||
}, {
|
||||
name: "公司ID_1"
|
||||
});
|
||||
65
数据库/KR_存客宝_四表重构KR_KR版.js
Normal file
65
数据库/KR_存客宝_四表重构KR_KR版.js
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_存客宝_四表重构KR_KR版
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:18:48
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 估值模式表
|
||||
// ----------------------------
|
||||
db.getCollection("估值模式表").drop();
|
||||
db.createCollection("估值模式表");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 微信号管理表
|
||||
// ----------------------------
|
||||
db.getCollection("微信号管理表").drop();
|
||||
db.createCollection("微信号管理表");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 微信好友表
|
||||
// ----------------------------
|
||||
db.getCollection("微信好友表").drop();
|
||||
db.createCollection("微信好友表");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 设备管理表
|
||||
// ----------------------------
|
||||
db.getCollection("设备管理表").drop();
|
||||
db.createCollection("设备管理表");
|
||||
db.getCollection("设备管理表").createIndex({
|
||||
"设备ID": NumberInt("1")
|
||||
}, {
|
||||
name: "设备ID_1",
|
||||
unique: true
|
||||
});
|
||||
db.getCollection("设备管理表").createIndex({
|
||||
"用户ID": NumberInt("1")
|
||||
}, {
|
||||
name: "用户ID_1"
|
||||
});
|
||||
db.getCollection("设备管理表").createIndex({
|
||||
"设备类型": NumberInt("1")
|
||||
}, {
|
||||
name: "设备类型_1"
|
||||
});
|
||||
36
数据库/KR_微博.js
Normal file
36
数据库/KR_微博.js
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_微博
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:20:57
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 微博uid+手机
|
||||
// ----------------------------
|
||||
db.getCollection("微博uid+手机").drop();
|
||||
db.createCollection("微博uid+手机");
|
||||
db.getCollection("微博uid+手机").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
90
数据库/KR_快递.js
Normal file
90
数据库/KR_快递.js
Normal file
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_快递
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:19:31
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for wlzhwu_jiezhang
|
||||
// ----------------------------
|
||||
db.getCollection("wlzhwu_jiezhang").drop();
|
||||
db.createCollection("wlzhwu_jiezhang");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for wlzhwu_wlzhangwu
|
||||
// ----------------------------
|
||||
db.getCollection("wlzhwu_wlzhangwu").drop();
|
||||
db.createCollection("wlzhwu_wlzhangwu");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 可行路由
|
||||
// ----------------------------
|
||||
db.getCollection("可行路由").drop();
|
||||
db.createCollection("可行路由");
|
||||
db.getCollection("可行路由").createIndex({
|
||||
_import_time: NumberInt("1")
|
||||
}, {
|
||||
name: "_import_time_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 圆通_普通客户
|
||||
// ----------------------------
|
||||
db.getCollection("圆通_普通客户").drop();
|
||||
db.createCollection("圆通_普通客户");
|
||||
db.getCollection("圆通_普通客户").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
db.getCollection("圆通_普通客户").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
db.getCollection("圆通_普通客户").createIndex({
|
||||
user_score: NumberInt("-1")
|
||||
}, {
|
||||
name: "user_score_-1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 圆通_潜在客户
|
||||
// ----------------------------
|
||||
db.getCollection("圆通_潜在客户").drop();
|
||||
db.createCollection("圆通_潜在客户");
|
||||
db.getCollection("圆通_潜在客户").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
db.getCollection("圆通_潜在客户").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
db.getCollection("圆通_潜在客户").createIndex({
|
||||
user_score: NumberInt("-1")
|
||||
}, {
|
||||
name: "user_score_-1"
|
||||
});
|
||||
46
数据库/KR_户口.js
Normal file
46
数据库/KR_户口.js
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_户口
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:19:03
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 户籍数据
|
||||
// ----------------------------
|
||||
db.getCollection("户籍数据").drop();
|
||||
db.createCollection("户籍数据");
|
||||
db.getCollection("户籍数据").createIndex({
|
||||
"姓名": NumberInt("1")
|
||||
}, {
|
||||
name: "姓名_1"
|
||||
});
|
||||
db.getCollection("户籍数据").createIndex({
|
||||
"身份证号": NumberInt("1")
|
||||
}, {
|
||||
name: "身份证号_1"
|
||||
});
|
||||
db.getCollection("户籍数据").createIndex({
|
||||
"户籍地址": NumberInt("1")
|
||||
}, {
|
||||
name: "户籍地址_1"
|
||||
});
|
||||
186
数据库/KR_手机.js
Normal file
186
数据库/KR_手机.js
Normal file
@@ -0,0 +1,186 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_手机
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:20:20
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for tmpgSyh4.renameCollection
|
||||
// ----------------------------
|
||||
db.getCollection("tmpgSyh4.renameCollection").drop();
|
||||
db.createCollection("tmpgSyh4.renameCollection");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东gd5800万神州行动感地带=广州GZBran2_copy2
|
||||
// ----------------------------
|
||||
db.getCollection("广东gd5800万神州行动感地带=广州GZBran2_copy2").drop();
|
||||
db.createCollection("广东gd5800万神州行动感地带=广州GZBran2_copy2");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东广州航空数据1
|
||||
// ----------------------------
|
||||
db.getCollection("广东广州航空数据1").drop();
|
||||
db.createCollection("广东广州航空数据1");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东广州航空数据2
|
||||
// ----------------------------
|
||||
db.getCollection("广东广州航空数据2").drop();
|
||||
db.createCollection("广东广州航空数据2");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东广州航空数据3
|
||||
// ----------------------------
|
||||
db.getCollection("广东广州航空数据3").drop();
|
||||
db.createCollection("广东广州航空数据3");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东广州航空数据4
|
||||
// ----------------------------
|
||||
db.getCollection("广东广州航空数据4").drop();
|
||||
db.createCollection("广东广州航空数据4");
|
||||
db.getCollection("广东广州航空数据4").createIndex({
|
||||
"电话号码": NumberInt("1")
|
||||
}, {
|
||||
name: "电话号码_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东深圳全球通女
|
||||
// ----------------------------
|
||||
db.getCollection("广东深圳全球通女").drop();
|
||||
db.createCollection("广东深圳全球通女");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_701鹰潭
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_701鹰潭").drop();
|
||||
db.createCollection("江西移动_701鹰潭");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_792九江
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_792九江").drop();
|
||||
db.createCollection("江西移动_792九江");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_793上饶
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_793上饶").drop();
|
||||
db.createCollection("江西移动_793上饶");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_798景德镇
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_798景德镇").drop();
|
||||
db.createCollection("江西移动_798景德镇");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_799萍乡
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_799萍乡").drop();
|
||||
db.createCollection("江西移动_799萍乡");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_上绕262万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_上绕262万").drop();
|
||||
db.createCollection("江西移动_上绕262万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_九江222万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_九江222万").drop();
|
||||
db.createCollection("江西移动_九江222万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_南昌368万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_南昌368万").drop();
|
||||
db.createCollection("江西移动_南昌368万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_吉安206万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_吉安206万").drop();
|
||||
db.createCollection("江西移动_吉安206万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_宜春230万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_宜春230万").drop();
|
||||
db.createCollection("江西移动_宜春230万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_抚州143万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_抚州143万").drop();
|
||||
db.createCollection("江西移动_抚州143万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_新余67万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_新余67万").drop();
|
||||
db.createCollection("江西移动_新余67万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_景德镇76万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_景德镇76万").drop();
|
||||
db.createCollection("江西移动_景德镇76万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_江西全球通带身份证
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_江西全球通带身份证").drop();
|
||||
db.createCollection("江西移动_江西全球通带身份证");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_江西全球通身份证
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_江西全球通身份证").drop();
|
||||
db.createCollection("江西移动_江西全球通身份证");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_江西全球通身份证姓名1226056
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_江西全球通身份证姓名1226056").drop();
|
||||
db.createCollection("江西移动_江西全球通身份证姓名1226056");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_萍乡86万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_萍乡86万").drop();
|
||||
db.createCollection("江西移动_萍乡86万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_赣州352万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_赣州352万").drop();
|
||||
db.createCollection("江西移动_赣州352万");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西移动_鹰潭53万
|
||||
// ----------------------------
|
||||
db.getCollection("江西移动_鹰潭53万").drop();
|
||||
db.createCollection("江西移动_鹰潭53万");
|
||||
223
数据库/KR_投资.js
Normal file
223
数据库/KR_投资.js
Normal file
@@ -0,0 +1,223 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_投资
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:20:51
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 上海
|
||||
// ----------------------------
|
||||
db.getCollection("上海").drop();
|
||||
db.createCollection("上海");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 云南
|
||||
// ----------------------------
|
||||
db.getCollection("云南").drop();
|
||||
db.createCollection("云南");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 内蒙古
|
||||
// ----------------------------
|
||||
db.getCollection("内蒙古").drop();
|
||||
db.createCollection("内蒙古");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 北京
|
||||
// ----------------------------
|
||||
db.getCollection("北京").drop();
|
||||
db.createCollection("北京");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 吉林
|
||||
// ----------------------------
|
||||
db.getCollection("吉林").drop();
|
||||
db.createCollection("吉林");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 商务部世界买家数据库 此数据由www_10195_com提供
|
||||
// ----------------------------
|
||||
db.getCollection("商务部世界买家数据库 此数据由www_10195_com提供").drop();
|
||||
db.createCollection("商务部世界买家数据库 此数据由www_10195_com提供");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 四川
|
||||
// ----------------------------
|
||||
db.getCollection("四川").drop();
|
||||
db.createCollection("四川");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 天津
|
||||
// ----------------------------
|
||||
db.getCollection("天津").drop();
|
||||
db.createCollection("天津");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 宁夏
|
||||
// ----------------------------
|
||||
db.getCollection("宁夏").drop();
|
||||
db.createCollection("宁夏");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 安徽
|
||||
// ----------------------------
|
||||
db.getCollection("安徽").drop();
|
||||
db.createCollection("安徽");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 山东
|
||||
// ----------------------------
|
||||
db.getCollection("山东").drop();
|
||||
db.createCollection("山东");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 山西
|
||||
// ----------------------------
|
||||
db.getCollection("山西").drop();
|
||||
db.createCollection("山西");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东
|
||||
// ----------------------------
|
||||
db.getCollection("广东").drop();
|
||||
db.createCollection("广东");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广西
|
||||
// ----------------------------
|
||||
db.getCollection("广西").drop();
|
||||
db.createCollection("广西");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 新疆
|
||||
// ----------------------------
|
||||
db.getCollection("新疆").drop();
|
||||
db.createCollection("新疆");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江苏
|
||||
// ----------------------------
|
||||
db.getCollection("江苏").drop();
|
||||
db.createCollection("江苏");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西
|
||||
// ----------------------------
|
||||
db.getCollection("江西").drop();
|
||||
db.createCollection("江西");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 河北
|
||||
// ----------------------------
|
||||
db.getCollection("河北").drop();
|
||||
db.createCollection("河北");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 河南
|
||||
// ----------------------------
|
||||
db.getCollection("河南").drop();
|
||||
db.createCollection("河南");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 浙江
|
||||
// ----------------------------
|
||||
db.getCollection("浙江").drop();
|
||||
db.createCollection("浙江");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 海南
|
||||
// ----------------------------
|
||||
db.getCollection("海南").drop();
|
||||
db.createCollection("海南");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 湖北
|
||||
// ----------------------------
|
||||
db.getCollection("湖北").drop();
|
||||
db.createCollection("湖北");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 湖南
|
||||
// ----------------------------
|
||||
db.getCollection("湖南").drop();
|
||||
db.createCollection("湖南");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 甘肃
|
||||
// ----------------------------
|
||||
db.getCollection("甘肃").drop();
|
||||
db.createCollection("甘肃");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 省份
|
||||
// ----------------------------
|
||||
db.getCollection("省份").drop();
|
||||
db.createCollection("省份");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 福建
|
||||
// ----------------------------
|
||||
db.getCollection("福建").drop();
|
||||
db.createCollection("福建");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 西藏
|
||||
// ----------------------------
|
||||
db.getCollection("西藏").drop();
|
||||
db.createCollection("西藏");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 贵州
|
||||
// ----------------------------
|
||||
db.getCollection("贵州").drop();
|
||||
db.createCollection("贵州");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 辽宁
|
||||
// ----------------------------
|
||||
db.getCollection("辽宁").drop();
|
||||
db.createCollection("辽宁");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 重庆
|
||||
// ----------------------------
|
||||
db.getCollection("重庆").drop();
|
||||
db.createCollection("重庆");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 陕西
|
||||
// ----------------------------
|
||||
db.getCollection("陕西").drop();
|
||||
db.createCollection("陕西");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 青海
|
||||
// ----------------------------
|
||||
db.getCollection("青海").drop();
|
||||
db.createCollection("青海");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 黑龙江
|
||||
// ----------------------------
|
||||
db.getCollection("黑龙江").drop();
|
||||
db.createCollection("黑龙江");
|
||||
223
数据库/KR_淘宝.js
Normal file
223
数据库/KR_淘宝.js
Normal file
@@ -0,0 +1,223 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_淘宝
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:20:35
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for zippo1(去重复后33万)
|
||||
// ----------------------------
|
||||
db.getCollection("zippo1(去重复后33万)").drop();
|
||||
db.createCollection("zippo1(去重复后33万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for zippo2
|
||||
// ----------------------------
|
||||
db.getCollection("zippo2").drop();
|
||||
db.createCollection("zippo2");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for zippo3
|
||||
// ----------------------------
|
||||
db.getCollection("zippo3").drop();
|
||||
db.createCollection("zippo3");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for zippo4
|
||||
// ----------------------------
|
||||
db.getCollection("zippo4").drop();
|
||||
db.createCollection("zippo4");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for zippo5
|
||||
// ----------------------------
|
||||
db.getCollection("zippo5").drop();
|
||||
db.createCollection("zippo5");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 办公设备文具(去重复64.5万)
|
||||
// ----------------------------
|
||||
db.getCollection("办公设备文具(去重复64.5万)").drop();
|
||||
db.createCollection("办公设备文具(去重复64.5万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 包(去重复后71万)
|
||||
// ----------------------------
|
||||
db.getCollection("包(去重复后71万)").drop();
|
||||
db.createCollection("包(去重复后71万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 卖家邮箱(去重复后300万)
|
||||
// ----------------------------
|
||||
db.getCollection("卖家邮箱(去重复后300万)").drop();
|
||||
db.createCollection("卖家邮箱(去重复后300万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 女士内衣(去重复后132.6万)
|
||||
// ----------------------------
|
||||
db.getCollection("女士内衣(去重复后132.6万)").drop();
|
||||
db.createCollection("女士内衣(去重复后132.6万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 女士箱包配件(去重复后34.8万)
|
||||
// ----------------------------
|
||||
db.getCollection("女士箱包配件(去重复后34.8万)").drop();
|
||||
db.createCollection("女士箱包配件(去重复后34.8万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 女装1(去重复后388.6万)
|
||||
// ----------------------------
|
||||
db.getCollection("女装1(去重复后388.6万)").drop();
|
||||
db.createCollection("女装1(去重复后388.6万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 女装2(去重复后83万,带旺旺号及支付宝)
|
||||
// ----------------------------
|
||||
db.getCollection("女装2(去重复后83万,带旺旺号及支付宝)").drop();
|
||||
db.createCollection("女装2(去重复后83万,带旺旺号及支付宝)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 女鞋(去重复后118.6万)
|
||||
// ----------------------------
|
||||
db.getCollection("女鞋(去重复后118.6万)").drop();
|
||||
db.createCollection("女鞋(去重复后118.6万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 家具定制代购(去重复后20万)
|
||||
// ----------------------------
|
||||
db.getCollection("家具定制代购(去重复后20万)").drop();
|
||||
db.createCollection("家具定制代购(去重复后20万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 家用电器(去重复后93.5万)
|
||||
// ----------------------------
|
||||
db.getCollection("家用电器(去重复后93.5万)").drop();
|
||||
db.createCollection("家用电器(去重复后93.5万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 床上用品(去重复后19万)
|
||||
// ----------------------------
|
||||
db.getCollection("床上用品(去重复后19万)").drop();
|
||||
db.createCollection("床上用品(去重复后19万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 彩妆护肤(去重复后138万)
|
||||
// ----------------------------
|
||||
db.getCollection("彩妆护肤(去重复后138万)").drop();
|
||||
db.createCollection("彩妆护肤(去重复后138万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 成人用品避孕用品情趣内衣(去重复后8万)
|
||||
// ----------------------------
|
||||
db.getCollection("成人用品避孕用品情趣内衣(去重复后8万)").drop();
|
||||
db.createCollection("成人用品避孕用品情趣内衣(去重复后8万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 户外军品旅游机票(去重复后64万)
|
||||
// ----------------------------
|
||||
db.getCollection("户外军品旅游机票(去重复后64万)").drop();
|
||||
db.createCollection("户外军品旅游机票(去重复后64万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 手机(去重复后80万)
|
||||
// ----------------------------
|
||||
db.getCollection("手机(去重复后80万)").drop();
|
||||
db.createCollection("手机(去重复后80万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 数码相机图形冲印(去重复后23.8万)
|
||||
// ----------------------------
|
||||
db.getCollection("数码相机图形冲印(去重复后23.8万)").drop();
|
||||
db.createCollection("数码相机图形冲印(去重复后23.8万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 数码配件电子元件(去重复后51.6万)
|
||||
// ----------------------------
|
||||
db.getCollection("数码配件电子元件(去重复后51.6万)").drop();
|
||||
db.createCollection("数码配件电子元件(去重复后51.6万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 时尚家饰工艺品(去重复后41万)
|
||||
// ----------------------------
|
||||
db.getCollection("时尚家饰工艺品(去重复后41万)").drop();
|
||||
db.createCollection("时尚家饰工艺品(去重复后41万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 汽车配件(去重复后38.6万)
|
||||
// ----------------------------
|
||||
db.getCollection("汽车配件(去重复后38.6万)").drop();
|
||||
db.createCollection("汽车配件(去重复后38.6万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 珠宝钻石翡翠(去重复后44.5万)
|
||||
// ----------------------------
|
||||
db.getCollection("珠宝钻石翡翠(去重复后44.5万)").drop();
|
||||
db.createCollection("珠宝钻石翡翠(去重复后44.5万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 电脑硬件台式机网络设备(去重复后20万)
|
||||
// ----------------------------
|
||||
db.getCollection("电脑硬件台式机网络设备(去重复后20万)").drop();
|
||||
db.createCollection("电脑硬件台式机网络设备(去重复后20万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 男装(去重复后216万)
|
||||
// ----------------------------
|
||||
db.getCollection("男装(去重复后216万)").drop();
|
||||
db.createCollection("男装(去重复后216万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 童装婴儿服鞋帽(去重复后52万)
|
||||
// ----------------------------
|
||||
db.getCollection("童装婴儿服鞋帽(去重复后52万)").drop();
|
||||
db.createCollection("童装婴儿服鞋帽(去重复后52万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 笔记本(去重复后32万)
|
||||
// ----------------------------
|
||||
db.getCollection("笔记本(去重复后32万)").drop();
|
||||
db.createCollection("笔记本(去重复后32万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 网络服务电脑软件(去重复后17万)
|
||||
// ----------------------------
|
||||
db.getCollection("网络服务电脑软件(去重复后17万)").drop();
|
||||
db.createCollection("网络服务电脑软件(去重复后17万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 装潢灯具五金(去重复后107万)
|
||||
// ----------------------------
|
||||
db.getCollection("装潢灯具五金(去重复后107万)").drop();
|
||||
db.createCollection("装潢灯具五金(去重复后107万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 食品保健(去重复后84.5万)
|
||||
// ----------------------------
|
||||
db.getCollection("食品保健(去重复后84.5万)").drop();
|
||||
db.createCollection("食品保健(去重复后84.5万)");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 饰品(去重复14.7万)
|
||||
// ----------------------------
|
||||
db.getCollection("饰品(去重复14.7万)").drop();
|
||||
db.createCollection("饰品(去重复14.7万)");
|
||||
156
数据库/KR_游戏.js
Normal file
156
数据库/KR_游戏.js
Normal file
@@ -0,0 +1,156 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_游戏
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:21:24
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 178游戏网
|
||||
// ----------------------------
|
||||
db.getCollection("178游戏网").drop();
|
||||
db.createCollection("178游戏网");
|
||||
db.getCollection("178游戏网").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 766游戏网
|
||||
// ----------------------------
|
||||
db.getCollection("766游戏网").drop();
|
||||
db.createCollection("766游戏网");
|
||||
db.getCollection("766游戏网").createIndex({
|
||||
"data.0": NumberInt("1")
|
||||
}, {
|
||||
name: "data.0_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 7k7k小游戏
|
||||
// ----------------------------
|
||||
db.getCollection("7k7k小游戏").drop();
|
||||
db.createCollection("7k7k小游戏");
|
||||
db.getCollection("7k7k小游戏").createIndex({
|
||||
account: NumberInt("1")
|
||||
}, {
|
||||
name: "account_1"
|
||||
});
|
||||
db.getCollection("7k7k小游戏").createIndex({
|
||||
domain: NumberInt("1")
|
||||
}, {
|
||||
name: "domain_1"
|
||||
});
|
||||
db.getCollection("7k7k小游戏").createIndex({
|
||||
account_type: NumberInt("1")
|
||||
}, {
|
||||
name: "account_type_1"
|
||||
});
|
||||
db.getCollection("7k7k小游戏").createIndex({
|
||||
is_email: NumberInt("1")
|
||||
}, {
|
||||
name: "is_email_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for DNF
|
||||
// ----------------------------
|
||||
db.getCollection("DNF").drop();
|
||||
db.createCollection("DNF");
|
||||
db.getCollection("DNF").createIndex({
|
||||
"data.0": NumberInt("1")
|
||||
}, {
|
||||
name: "data.0_1"
|
||||
});
|
||||
db.getCollection("DNF").createIndex({
|
||||
id: NumberInt("1")
|
||||
}, {
|
||||
name: "id_1"
|
||||
});
|
||||
db.getCollection("DNF").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
db.getCollection("DNF").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
db.getCollection("DNF").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
db.getCollection("DNF").createIndex({
|
||||
character_name: NumberInt("1")
|
||||
}, {
|
||||
name: "character_name_1"
|
||||
});
|
||||
db.getCollection("DNF").createIndex({
|
||||
server_name: NumberInt("1")
|
||||
}, {
|
||||
name: "server_name_1"
|
||||
});
|
||||
db.getCollection("DNF").createIndex({
|
||||
level: NumberInt("-1")
|
||||
}, {
|
||||
name: "level_-1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for KR_游戏_重叠用户
|
||||
// ----------------------------
|
||||
db.getCollection("KR_游戏_重叠用户").drop();
|
||||
db.createCollection("KR_游戏_重叠用户");
|
||||
db.getCollection("KR_游戏_重叠用户").createIndex({
|
||||
user_id: NumberInt("1")
|
||||
}, {
|
||||
name: "user_id_1"
|
||||
});
|
||||
db.getCollection("KR_游戏_重叠用户").createIndex({
|
||||
user_value: NumberInt("1")
|
||||
}, {
|
||||
name: "user_value_1"
|
||||
});
|
||||
db.getCollection("KR_游戏_重叠用户").createIndex({
|
||||
overlap_count: NumberInt("1")
|
||||
}, {
|
||||
name: "overlap_count_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 游戏语音ispeak_cn
|
||||
// ----------------------------
|
||||
db.getCollection("游戏语音ispeak_cn").drop();
|
||||
db.createCollection("游戏语音ispeak_cn");
|
||||
db.getCollection("游戏语音ispeak_cn").createIndex({
|
||||
username: NumberInt("1")
|
||||
}, {
|
||||
name: "username_1"
|
||||
});
|
||||
db.getCollection("游戏语音ispeak_cn").createIndex({
|
||||
email: NumberInt("1")
|
||||
}, {
|
||||
name: "email_1"
|
||||
});
|
||||
1136
数据库/KR_腾讯.js
Normal file
1136
数据库/KR_腾讯.js
Normal file
File diff suppressed because it is too large
Load Diff
79
数据库/KR_酒店.js
Normal file
79
数据库/KR_酒店.js
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_酒店
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:19:17
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 如家汉庭
|
||||
// ----------------------------
|
||||
db.getCollection("如家汉庭").drop();
|
||||
db.createCollection("如家汉庭");
|
||||
db.getCollection("如家汉庭").createIndex({
|
||||
Mobile: NumberInt("1")
|
||||
}, {
|
||||
name: "Mobile_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 酒店开房记录_2013年8月_2000万
|
||||
// ----------------------------
|
||||
db.getCollection("酒店开房记录_2013年8月_2000万").drop();
|
||||
db.createCollection("酒店开房记录_2013年8月_2000万");
|
||||
db.getCollection("酒店开房记录_2013年8月_2000万").createIndex({
|
||||
name: NumberInt("1")
|
||||
}, {
|
||||
name: "name_1"
|
||||
});
|
||||
db.getCollection("酒店开房记录_2013年8月_2000万").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
db.getCollection("酒店开房记录_2013年8月_2000万").createIndex({
|
||||
id_card: NumberInt("1")
|
||||
}, {
|
||||
name: "id_card_1"
|
||||
});
|
||||
db.getCollection("酒店开房记录_2013年8月_2000万").createIndex({
|
||||
mobile: NumberInt("1")
|
||||
}, {
|
||||
name: "mobile_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 酒店开房记录_2013年8月_2000万内
|
||||
// ----------------------------
|
||||
db.getCollection("酒店开房记录_2013年8月_2000万内").drop();
|
||||
db.createCollection("酒店开房记录_2013年8月_2000万内");
|
||||
db.getCollection("酒店开房记录_2013年8月_2000万内").createIndex({
|
||||
mobile: NumberInt("1")
|
||||
}, {
|
||||
name: "mobile_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 酒店开房记录_2013年8月_2000万内_备份
|
||||
// ----------------------------
|
||||
db.getCollection("酒店开房记录_2013年8月_2000万内_备份").drop();
|
||||
db.createCollection("酒店开房记录_2013年8月_2000万内_备份");
|
||||
85
数据库/KR_销售额3000万元-5000万元企业名录.js
Normal file
85
数据库/KR_销售额3000万元-5000万元企业名录.js
Normal file
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_销售额3000万元-5000万元企业名录
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:21:17
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 企业名录 的副本
|
||||
// ----------------------------
|
||||
db.getCollection("企业名录 的副本").drop();
|
||||
db.createCollection("企业名录 的副本");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 企业规模代码
|
||||
// ----------------------------
|
||||
db.getCollection("企业规模代码").drop();
|
||||
db.createCollection("企业规模代码");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 控股情况代码
|
||||
// ----------------------------
|
||||
db.getCollection("控股情况代码").drop();
|
||||
db.createCollection("控股情况代码");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 机构类型代码
|
||||
// ----------------------------
|
||||
db.getCollection("机构类型代码").drop();
|
||||
db.createCollection("机构类型代码");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 经济类型代码
|
||||
// ----------------------------
|
||||
db.getCollection("经济类型代码").drop();
|
||||
db.createCollection("经济类型代码");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 营业收入代码
|
||||
// ----------------------------
|
||||
db.getCollection("营业收入代码").drop();
|
||||
db.createCollection("营业收入代码");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 行业代码
|
||||
// ----------------------------
|
||||
db.getCollection("行业代码").drop();
|
||||
db.createCollection("行业代码");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 行政区划代码
|
||||
// ----------------------------
|
||||
db.getCollection("行政区划代码").drop();
|
||||
db.createCollection("行政区划代码");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 销售额3000万元-5000万元企业名录
|
||||
// ----------------------------
|
||||
db.getCollection("销售额3000万元-5000万元企业名录").drop();
|
||||
db.createCollection("销售额3000万元-5000万元企业名录");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 隶属关系代码
|
||||
// ----------------------------
|
||||
db.getCollection("隶属关系代码").drop();
|
||||
db.createCollection("隶属关系代码");
|
||||
91
数据库/KR_顺丰.js
Normal file
91
数据库/KR_顺丰.js
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_顺丰
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:20:28
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 顺丰快递数据
|
||||
// ----------------------------
|
||||
db.getCollection("顺丰快递数据").drop();
|
||||
db.createCollection("顺丰快递数据");
|
||||
db.getCollection("顺丰快递数据").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
db.getCollection("顺丰快递数据").createIndex({
|
||||
province: NumberInt("1")
|
||||
}, {
|
||||
name: "province_1"
|
||||
});
|
||||
db.getCollection("顺丰快递数据").createIndex({
|
||||
city: NumberInt("1")
|
||||
}, {
|
||||
name: "city_1"
|
||||
});
|
||||
db.getCollection("顺丰快递数据").createIndex({
|
||||
province: NumberInt("1"),
|
||||
city: NumberInt("1")
|
||||
}, {
|
||||
name: "province_1_city_1"
|
||||
});
|
||||
db.getCollection("顺丰快递数据").createIndex({
|
||||
phone: NumberInt("1"),
|
||||
province: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1_province_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 顺丰快递数据_tmpForCopy1
|
||||
// ----------------------------
|
||||
db.getCollection("顺丰快递数据_tmpForCopy1").drop();
|
||||
db.createCollection("顺丰快递数据_tmpForCopy1");
|
||||
db.getCollection("顺丰快递数据_tmpForCopy1").createIndex({
|
||||
phone: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1"
|
||||
});
|
||||
db.getCollection("顺丰快递数据_tmpForCopy1").createIndex({
|
||||
province: NumberInt("1")
|
||||
}, {
|
||||
name: "province_1"
|
||||
});
|
||||
db.getCollection("顺丰快递数据_tmpForCopy1").createIndex({
|
||||
city: NumberInt("1")
|
||||
}, {
|
||||
name: "city_1"
|
||||
});
|
||||
db.getCollection("顺丰快递数据_tmpForCopy1").createIndex({
|
||||
province: NumberInt("1"),
|
||||
city: NumberInt("1")
|
||||
}, {
|
||||
name: "province_1_city_1"
|
||||
});
|
||||
db.getCollection("顺丰快递数据_tmpForCopy1").createIndex({
|
||||
phone: NumberInt("1"),
|
||||
province: NumberInt("1")
|
||||
}, {
|
||||
name: "phone_1_province_1"
|
||||
});
|
||||
217
数据库/KR_香港在大陆投资企业名录.js
Normal file
217
数据库/KR_香港在大陆投资企业名录.js
Normal file
@@ -0,0 +1,217 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_香港在大陆投资企业名录
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:21:07
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 上海
|
||||
// ----------------------------
|
||||
db.getCollection("上海").drop();
|
||||
db.createCollection("上海");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 云南
|
||||
// ----------------------------
|
||||
db.getCollection("云南").drop();
|
||||
db.createCollection("云南");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 内蒙
|
||||
// ----------------------------
|
||||
db.getCollection("内蒙").drop();
|
||||
db.createCollection("内蒙");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 北京
|
||||
// ----------------------------
|
||||
db.getCollection("北京").drop();
|
||||
db.createCollection("北京");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 吉林
|
||||
// ----------------------------
|
||||
db.getCollection("吉林").drop();
|
||||
db.createCollection("吉林");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 四川
|
||||
// ----------------------------
|
||||
db.getCollection("四川").drop();
|
||||
db.createCollection("四川");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 天津
|
||||
// ----------------------------
|
||||
db.getCollection("天津").drop();
|
||||
db.createCollection("天津");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 宁夏
|
||||
// ----------------------------
|
||||
db.getCollection("宁夏").drop();
|
||||
db.createCollection("宁夏");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 安徽
|
||||
// ----------------------------
|
||||
db.getCollection("安徽").drop();
|
||||
db.createCollection("安徽");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 山东
|
||||
// ----------------------------
|
||||
db.getCollection("山东").drop();
|
||||
db.createCollection("山东");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 山西
|
||||
// ----------------------------
|
||||
db.getCollection("山西").drop();
|
||||
db.createCollection("山西");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广东
|
||||
// ----------------------------
|
||||
db.getCollection("广东").drop();
|
||||
db.createCollection("广东");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 广西
|
||||
// ----------------------------
|
||||
db.getCollection("广西").drop();
|
||||
db.createCollection("广西");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 新疆
|
||||
// ----------------------------
|
||||
db.getCollection("新疆").drop();
|
||||
db.createCollection("新疆");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江苏
|
||||
// ----------------------------
|
||||
db.getCollection("江苏").drop();
|
||||
db.createCollection("江苏");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 江西
|
||||
// ----------------------------
|
||||
db.getCollection("江西").drop();
|
||||
db.createCollection("江西");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 河北
|
||||
// ----------------------------
|
||||
db.getCollection("河北").drop();
|
||||
db.createCollection("河北");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 河南
|
||||
// ----------------------------
|
||||
db.getCollection("河南").drop();
|
||||
db.createCollection("河南");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 浙江
|
||||
// ----------------------------
|
||||
db.getCollection("浙江").drop();
|
||||
db.createCollection("浙江");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 海南
|
||||
// ----------------------------
|
||||
db.getCollection("海南").drop();
|
||||
db.createCollection("海南");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 湖北
|
||||
// ----------------------------
|
||||
db.getCollection("湖北").drop();
|
||||
db.createCollection("湖北");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 湖南
|
||||
// ----------------------------
|
||||
db.getCollection("湖南").drop();
|
||||
db.createCollection("湖南");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 甘肃
|
||||
// ----------------------------
|
||||
db.getCollection("甘肃").drop();
|
||||
db.createCollection("甘肃");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 福建
|
||||
// ----------------------------
|
||||
db.getCollection("福建").drop();
|
||||
db.createCollection("福建");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 西藏
|
||||
// ----------------------------
|
||||
db.getCollection("西藏").drop();
|
||||
db.createCollection("西藏");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 贵州
|
||||
// ----------------------------
|
||||
db.getCollection("贵州").drop();
|
||||
db.createCollection("贵州");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 辽宁
|
||||
// ----------------------------
|
||||
db.getCollection("辽宁").drop();
|
||||
db.createCollection("辽宁");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 重庆
|
||||
// ----------------------------
|
||||
db.getCollection("重庆").drop();
|
||||
db.createCollection("重庆");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 陕西
|
||||
// ----------------------------
|
||||
db.getCollection("陕西").drop();
|
||||
db.createCollection("陕西");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 青海
|
||||
// ----------------------------
|
||||
db.getCollection("青海").drop();
|
||||
db.createCollection("青海");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 香港投资企业名录
|
||||
// ----------------------------
|
||||
db.getCollection("香港投资企业名录").drop();
|
||||
db.createCollection("香港投资企业名录");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 黑龙江
|
||||
// ----------------------------
|
||||
db.getCollection("黑龙江").drop();
|
||||
db.createCollection("黑龙江");
|
||||
103
数据库/KR_魔兽世界.js
Normal file
103
数据库/KR_魔兽世界.js
Normal file
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 标签数据库
|
||||
Source Server Type : MongoDB
|
||||
Source Server Version : 60025 (6.0.25)
|
||||
Source Host : 192.168.2.6:27017
|
||||
Source Schema : KR_魔兽世界
|
||||
|
||||
Target Server Type : MongoDB
|
||||
Target Server Version : 60025 (6.0.25)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 19/11/2025 15:19:37
|
||||
*/
|
||||
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for elysn欧美_魔兽世界主题库
|
||||
// ----------------------------
|
||||
db.getCollection("elysn欧美_魔兽世界主题库").drop();
|
||||
db.createCollection("elysn欧美_魔兽世界主题库");
|
||||
db.getCollection("elysn欧美_魔兽世界主题库").createIndex({
|
||||
"账号": NumberInt("1")
|
||||
}, {
|
||||
name: "账号_1"
|
||||
});
|
||||
db.getCollection("elysn欧美_魔兽世界主题库").createIndex({
|
||||
"密码": NumberInt("1")
|
||||
}, {
|
||||
name: "密码_1"
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for system.profile
|
||||
// ----------------------------
|
||||
db.getCollection("system.profile").drop();
|
||||
db.createCollection("system.profile",{
|
||||
capped: true,
|
||||
size: 1048576
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 网易2500W密正数据
|
||||
// ----------------------------
|
||||
db.getCollection("网易2500W密正数据").drop();
|
||||
db.createCollection("网易2500W密正数据");
|
||||
db.getCollection("网易2500W密正数据").createIndex({
|
||||
"账号": NumberInt("1")
|
||||
}, {
|
||||
name: "账号_1",
|
||||
unique: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 网易IS_game.sohu.com邮箱占90%
|
||||
// ----------------------------
|
||||
db.getCollection("网易IS_game.sohu.com邮箱占90%").drop();
|
||||
db.createCollection("网易IS_game.sohu.com邮箱占90%");
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 网易正确数据_已确认
|
||||
// ----------------------------
|
||||
db.getCollection("网易正确数据_已确认").drop();
|
||||
db.createCollection("网易正确数据_已确认");
|
||||
db.getCollection("网易正确数据_已确认").createIndex({
|
||||
"账号": NumberInt("1")
|
||||
}, {
|
||||
name: "账号_1",
|
||||
background: true,
|
||||
unique: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 网易正确数据_空白数据
|
||||
// ----------------------------
|
||||
db.getCollection("网易正确数据_空白数据").drop();
|
||||
db.createCollection("网易正确数据_空白数据");
|
||||
db.getCollection("网易正确数据_空白数据").createIndex({
|
||||
"账号": NumberInt("1")
|
||||
}, {
|
||||
name: "idx_account",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("网易正确数据_空白数据").createIndex({
|
||||
"密码": NumberInt("1")
|
||||
}, {
|
||||
name: "idx_password",
|
||||
background: true
|
||||
});
|
||||
db.getCollection("网易正确数据_空白数据").createIndex({
|
||||
"账号": NumberInt("1"),
|
||||
"密码": NumberInt("1")
|
||||
}, {
|
||||
name: "idx_account_password",
|
||||
background: true
|
||||
});
|
||||
|
||||
// ----------------------------
|
||||
// Collection structure for 魔兽世界_3月库
|
||||
// ----------------------------
|
||||
db.getCollection("魔兽世界_3月库").drop();
|
||||
db.createCollection("魔兽世界_3月库");
|
||||
Reference in New Issue
Block a user