mongodb相关信息

安装mongodb server 搭建的Replica环境

三台机器的IP地址分别为

192.168.100.205

192.168.100.206

192.168.100.207

操作系统为centos

1. 将mongodb-org-server-4.4.4-1.el7.x86_64.rpm上传到三台机器上

2. 使用yum install mongodb-org-server-4.4.4-1.el7.x86_64.rpm 安装到三台机器上

3. 三台机器上创建数据存储目录/data/mongodb

[root@test1 ~]# mkdir -p /data/mongodb
##修改数据目录所在用户和组是因为yum安装mongodb的时候已经创建了mongod用户,并且使用systemctl start mongod启动服务的时候后台是以mongod运行的,如果该目录mongod用户没有读写权限,服务会启动失败
[root@test1 ~]# chown -R  mongod:mongod /data/mongodb/
[root@test2 ~]# mkdir -p /data/mongodb
[root@test2 ~]# chown -R mongod:mongod /data/mongodb
[root@test3 ~]# mkdir -p /data/mongodb
[root@test3 ~]# chown -R mongod:mongod /data/mongodb

4. 修改配置文件内容

  默认安装目录为

/usr/bin/mongod

配置文件的路径

/etc/mongod.conf

修改器内容如下:

# mongod.conf

# for documentation of all options,see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
# 修改日志文件路径
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/mongod.log

# Where and how to store data.
# 修改数据存储路径
storage:
  dbPath: /data/mongodb
  journal:
    enabled: true
#  engine:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
# 修改绑定地址
  bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or,alternatively,use the net.bindIpAll setting.


#security:

#operationProfiling:

#注意key和value之间的空格
replication:
  replSetName: "rs0"

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

5. 启动服务

systemctl start mongod  (当然也可以直接用mongod -f  /etc/mongod.conf启动)

6. 关闭MongoDB

[root@test1 ~]# mongod --shutdown -f /etc/mongod.conf
killing process with pid: 35667
[root@test2 ~]# mongod --shutdown -f /etc/mongod.conf
killing process with pid: 27659
[root@test3 ~]# mongod --shutdown -f /etc/mongod.conf
killing process with pid: 29149

7. 初始化replicaset

###使用mongo命令连接到三台机器中的一台

> rs.initiate( {
...    _id : "rs0",...    members: [
...       { _id: 0,host: "test1:27017" },...       { _id: 1,host: "test2:27017" },...       { _id: 2,host: "test3:27017" }
...    ]
... })
{
        "ok" : 1,"$clusterTime" : {
                "clusterTime" : Timestamp(1632281074,1),"signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),"keyId" : NumberLong(0)
                }
        },"operationTime" : Timestamp(1632281074,1)
}

 6 查看状态

rs.status()
{
        "set" : "rs0","date" : ISODate("2021-09-22T03:25:50.205Z"),"myState" : 1,"term" : NumberLong(1),"syncSourceHost" : "","syncSourceId" : -1,"heartbeatIntervalMillis" : NumberLong(2000),"majorityVoteCount" : 2,"writeMajorityCount" : 2,"votingMembersCount" : 3,"writableVotingMembersCount" : 3,"optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1632281145,"t" : NumberLong(1)
                },"lastCommittedWallTime" : ISODate("2021-09-22T03:25:45.153Z"),"readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1632281145,"readConcernMajorityWallTime" : ISODate("2021-09-22T03:25:45.153Z"),"appliedOpTime" : {
                        "ts" : Timestamp(1632281145,"durableOpTime" : {
                        "ts" : Timestamp(1632281145,"lastAppliedWallTime" : ISODate("2021-09-22T03:25:45.153Z"),"lastDurableWallTime" : ISODate("2021-09-22T03:25:45.153Z")
        },"lastStableRecoveryTimestamp" : Timestamp(1632281145,"electionCandidateMetrics" : {
                "lastElectionReason" : "electionTimeout","lastElectionDate" : ISODate("2021-09-22T03:24:45.126Z"),"electionTerm" : NumberLong(1),"lastCommittedOpTimeAtElection" : {
                        "ts" : Timestamp(0,0),"t" : NumberLong(-1)
                },"lastSeenOpTimeAtElection" : {
                        "ts" : Timestamp(1632281074,"numVotesNeeded" : 2,"priorityAtElection" : 1,"electionTimeoutMillis" : NumberLong(10000),"numCatchUpOps" : NumberLong(0),"newTermStartDate" : ISODate("2021-09-22T03:24:45.134Z"),"wMajorityWriteAvailabilityDate" : ISODate("2021-09-22T03:24:46.128Z")
        },"members" : [
                {
                        "_id" : 0,"name" : "test1:27017","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 636,"optime" : {
                                "ts" : Timestamp(1632281145,"t" : NumberLong(1)
                        },"optimeDate" : ISODate("2021-09-22T03:25:45Z"),"infoMessage" : "","electionTime" : Timestamp(1632281085,"electionDate" : ISODate("2021-09-22T03:24:45Z"),"configVersion" : 1,"configTerm" : 1,"self" : true,"lastHeartbeatMessage" : ""
                },{
                        "_id" : 1,"name" : "test2:27017","health" : 0,"state" : 8,"stateStr" : "(not reachable/healthy)","uptime" : 0,"optime" : {
                                "ts" : Timestamp(0,"t" : NumberLong(-1)
                        },"optimeDurable" : {
                                "ts" : Timestamp(0,"optimeDate" : ISODate("1970-01-01T00:00:00Z"),"optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),"lastHeartbeat" : ISODate("2021-09-22T03:25:49.184Z"),"lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),"pingMs" : NumberLong(0),"lastHeartbeatMessage" : "Our replica set configuration is invalid or does not include us","configVersion" : -2,"configTerm" : -1
                },{
                        "_id" : 2,"name" : "test3:27017","state" : 2,"stateStr" : "SECONDARY","uptime" : 75,"optimeDurable" : {
                                "ts" : Timestamp(1632281145,"optimeDurableDate" : ISODate("2021-09-22T03:25:45Z"),"lastHeartbeat" : ISODate("2021-09-22T03:25:49.169Z"),"lastHeartbeatRecv" : ISODate("2021-09-22T03:25:50.167Z"),"lastHeartbeatMessage" : "","syncSourceHost" : "test1:27017","syncSourceId" : 0,"configTerm" : 1
                }
        ],"ok" : 1,"$clusterTime" : {
                "clusterTime" : Timestamp(1632281145,"operationTime" : Timestamp(1632281145,1)
}

编译mongo c++driver和c driver(windows)

1. 分别下载 cmake,boost,mongo-c driver,mongo-cxx-driver (GitHub - mongodb/mongo-cxx-driver at releases/v3.4)

2. boost下载的版本为60,放在e:\info\boost目录下,编译boost,步骤如下

a. cd到 X64 native Tools Command Prompt for VS2017

b. cd到e:/info/boost/boost_1_60_0目录下,执行如下命令

:\info\boost\boost_1_60_0>bootstrap.bat
Building Boost.Build engine

Bootstrapping is done. To build,run:

    .\b2

To adjust configuration,edit 'project-config.jam'.
Further information:

    - Command line help:
    .\b2 --help

    - Getting started guide:
    http://boost.org/more/getting_started/windows.html

    - Boost.Build documentation:
    http://www.boost.org/build/doc/html/index.html

c  执行如下命令

bjam stage --toolset=msvc-14.1 --with-date_time --with-filesystem --with-program_options --with-system --with-thread link=static runtime-link=static threading=multi address-model=64 debug release

3. 编译mongo-c-driver,源码放在E:\info\mongodb\mongo-c-driver-1.13.0目录中

a. cd到E:\info\mongodb\mongo-c-driver-1.13.0\build目录中

b. 执行如下命令

E:\info\cmak\cmake-3.13.3-win64-x64\bin\cmake -G "Visual Studio 15 2017 Win64" "-DCMAKE_INSTALL_PREFIX=e:\info\mongodb\mongo-driver" "-DCMAKE_PREFIX_PATH=e:\info\mongodb\mongo-driver" ..

b. 进入E:\info\mongodb\mongo-c-driver-1.13.0\build目录中,使用vs打开mongo-c-driver.sln后,编译all_build工程后,编译install工程,编译后的结果会放到e:\info\mongodb\mongo-driver目录中。

3. 编译mongodb-c++ driver,源码放在E:\info\mongodb\mongo-cxx-driver-releases-v3.4目录中

a. cd到E:\info\mongodb\mongo-cxx-driver-releases-v3\build目录中。

b. 执行如下命令


E:\info\cmak\cmake-3.13.3-win64-x64\bin\cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX=E:\info\mongodb\mongo-cxx-driver -DCMAKE_PREFIX_PATH=e:\info\mongodb\mongo-driver -DBOOST_ROOT=e:\info\boost\boost_1_60_0 -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_FLAGS="/Zc:__cplusplus" ..
注释:
-DBOOST_ROOT是boost的根目录

c,用vs打开E:\info\mongodb\mongo-cxx-driver-releases-v3.4\MONGO_CXX_DRIVER.sln文件

d 编译 all_build工程,编译过程中会出现一些错误,需要所有工程修改如下信息

2. bsoncxx工程需要添加_ENABLE_EXTENDED_ALIGNED_STORAGE预编译条件

最后可以参考

windows下VS2017编译mongoDB c、c++API_sqcfj的专栏-CSDN博客

linux下编译以及编程步骤,参考

a. 从https://github.com/mongodb/mongo-c-driver/releases/download/1.17.4/mongo-c-driver-1.17.4.tar.gz下载源码到/home/mongodb并加压到/home/mongodb/mongo-c-driver-1.17.4目录中。

b. cd /home/mongodb/mongo-c-driver-1.17.4

c. mkdir cmake-build

d.  cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DCMAKE_INSTALL_PREFIX=/home/mongodb/mongo-c-driver/build  -DCMAKE_PREFIX_PATH=/home/mongodb/mongo-c-driver/build ..

e. cmake --build . (编译,类似make命令)

f. cmake --build --target install(类似make install),该操作会在/home/mongodb/mongo-c-driver/build目录中放置include,bin,lib64,share四个目录

hello_mongoc.c内容如下

#include <mongoc/mongoc.h>

int
main (int argc,char *argv[])
{
   const char *uri_string = "mongodb://localhost:27017";
   mongoc_uri_t *uri;
   mongoc_client_t *client;
   mongoc_database_t *database;
   mongoc_collection_t *collection;
   bson_t *command,reply,*insert;
   bson_error_t error;
   char *str;
   bool retval;

   /*
 *     * Required to initialize libmongoc's internals
 *         */
   mongoc_init ();

   /*
 *     * Optionally get MongoDB URI from command line
 *         */
   if (argc > 1) {
      uri_string = argv[1];
   }

   /*
 *     * Safely create a MongoDB URI object from the given string
 *         */
   uri = mongoc_uri_new_with_error (uri_string,&error);
   if (!uri) {
      fprintf (stderr,"failed to parse URI: %s\n"
               "error message:       %s\n",uri_string,error.message);
      return EXIT_FAILURE;
   }

   /*
 *     * Create a new client instance
 *         */
   client = mongoc_client_new_from_uri (uri);
   if (!client) {
      return EXIT_FAILURE;
   }

   /*
 *     * Register the application name so we can track it in the profile logs
 *         * on the server. This can also be done from the URI (see other examples).
 *             */
   mongoc_client_set_appname (client,"connect-example");

   /*
 *     * Get a handle on the database "db_name" and collection "coll_name"
 *         */
   database = mongoc_client_get_database (client,"test1");
   collection = mongoc_client_get_collection (client,"test1","test");

   /*
 *     * Do work. This example pings the database,prints the result as JSON and
 *         * performs an insert
 *             */
   command = BCON_NEW ("ping",BCON_INT32 (1));

   retval = mongoc_client_command_simple (
      client,"admin",command,NULL,&reply,&error);

   if (!retval) {
      fprintf (stderr,"%s\n",error.message);
      return EXIT_FAILURE;
   }

   str = bson_as_json (&reply,NULL);
   printf ("%s\n",str);

   insert = BCON_NEW ("hello",BCON_UTF8 ("world"));

   if (!mongoc_collection_insert_one (collection,insert,&error)) {
      fprintf (stderr,error.message);
   }

   bson_destroy (insert);
   bson_destroy (&reply);
   bson_destroy (command);
   bson_free (str);

   /*
 *     * Release our handles and clean up libmongoc
 *         */
   mongoc_collection_destroy (collection);
   mongoc_database_destroy (database);
   mongoc_uri_destroy (uri);
   mongoc_client_destroy (client);
   mongoc_cleanup ();

   return EXIT_SUCCESS;
}

 g. 编译并运行

gcc -o hello_mongoc hello_mongoc.c     -I/home/mongodb/mongo-c-driver/build/include/libbson-1.0 -I/home/mongodb/mongo-c-driver/build/include/libmongoc-1.0  -L/home/mongodb/mongo-c-driver/build/lib64   -lmongoc-1.0 -lbson-1.0
./hello_mongoc

PG数据录入到mongo例子程序

pg的数据结构如下:

sde=# \d landsat
                       数据表 "sde.landsat"
    栏位    |          类型          | 校对规则 |  可空的  | 预设
------------+------------------------+----------+----------+------
 objectid   | integer                |          | not null |
 entityid   | character varying(254) |          |          |
 acquisitio | character varying(254) |          |          |
 cloudcover | numeric(38,8)          |          |          |
 processing | character varying(254) |          |          |
 path       | integer                |          |          |
 row        | integer                |          |          |
 min_lat    | numeric(38,8)          |          |          |
 min_lon    | numeric(38,8)          |          |          |
 max_lat    | numeric(38,8)          |          |          |
 max_lon    | numeric(38,8)          |          |          |
 download_u | character varying(254) |          |          |
 shape      | st_point               |          |          |
索引:
    "r48_sde_rowid_uk" UNIQUE,btree (objectid) WITH (fillfactor='75')
    "a35_ix1" gist (shape)
    "landsat_entityid_idx" btree (entityid)

记录数量为

sde=# select count(*) from landsat;
  count
---------
 1059757
(1 行记录)

  PG到MongoDB的c的录入程序

#pragma comment(lib,"bson-1.0.lib")
#pragma comment(lib,"mongoc-1.0.lib")
#pragma comment(lib,"bsoncxx.lib")
#pragma comment(lib,"mongocxx.lib")
#pragma comment(lib,"libpq.lib")
#pragma warning (disable:4819)
#include <iostream>
#include "bsoncxx/builder/stream/document.hpp"
#include "mongocxx/instance.hpp"
#include "mongocxx/uri.hpp"
#include "mongocxx/client.hpp"
#include <bsoncxx/json.hpp>
#include <mongoc/mongoc.h>
#include <string>
#include <libpq-fe.h>
using namespace std;

int main(int argc,char* argv[])
{
    //mongo连接字符串
	string uri_string = "mongodb://192.168.100.138:27017";
    //连接信息结构体
	mongoc_uri_t* uri = NULL;
    //客户端结构体
	mongoc_client_t* client = NULL;
    //客户端结构体
	mongoc_database_t* database = NULL;
    //collection结构体
	mongoc_collection_t* collection = NULL;
    //bson结构体
	bson_t* command = NULL,*insert = NULL;
	bson_error_t error;
	char* str = NULL;
	bool retval;


	PGconn* m_pgconn = NULL;
	string connectinfo = "hostaddr=127.0.0.1 port=5432 dbname=sde user=sde password=sde";
	m_pgconn = PQconnectdb(connectinfo.c_str());
	ConnStatusType t = PQstatus(m_pgconn);
	if (PQstatus(m_pgconn) != CONNECTION_OK)
	{
		return -1;
	}

    //初始化mongoc环境
	mongoc_init();


	if (argc > 1)
	{
		uri_string = argv[1];
	}
   
    //初始化uri对象
	uri = mongoc_uri_new_with_error(uri_string.c_str(),&error);
	if (!uri)
	{
		fprintf(stderr,"failed to parse uri %s error message %s\n",uri_string.c_str(),error.message);
		mongoc_cleanup();
		PQfinish(m_pgconn);
		return EXIT_FAILURE;
	}
    
    //建立新连接
	client = mongoc_client_new_from_uri(uri);
	if (!client)
	{
		if (collection)
			mongoc_collection_destroy(collection);
		if (database)
			mongoc_database_destroy(database);
		if (uri)
			mongoc_uri_destroy(uri);
		if (client)
			mongoc_client_destroy(client);

		mongoc_cleanup();
		PQfinish(m_pgconn);
		fprintf(stderr,"failed to connect mongodb");
		return EXIT_FAILURE;
	}

	mongoc_client_set_appname(client,"connect example");
    //从client对象中获取database对象
	database = mongoc_client_get_database(client,"test");
	if (!database)
	{
		if (collection)
			mongoc_collection_destroy(collection);
		if (database)
			mongoc_database_destroy(database);
		if (uri)
			mongoc_uri_destroy(uri);
		if (client)
			mongoc_client_destroy(client);

		mongoc_cleanup();
		PQfinish(m_pgconn);
		return EXIT_FAILURE;
	}

    从client对象中获取collection对象
	collection = mongoc_client_get_collection(client,"test","landsat1");
	if (!collection)
	{
		if (collection)
			mongoc_collection_destroy(collection);
		if (database)
			mongoc_database_destroy(database);
		if (uri)
			mongoc_uri_destroy(uri);
		if (client)
			mongoc_client_destroy(client);

		mongoc_cleanup();
		PQfinish(m_pgconn);
		return EXIT_FAILURE;
	}

	//command = BCON_NEW("ping",BCON_INT32(1));

	string sql = "select t.id,row_to_json(t) from (select objectid::text as id,entityid,cloudcover,processing,path,row,st_y(shape)||','||st_x(shape) as shape from landsat) as t";
	PGresult* result = PQexec(m_pgconn,sql.c_str());

	
	for (int i = 0; i < PQntuples(result); i++)
	{
		string json = PQgetvalue(result,i,1);
        //从json字符串转换成bson对象
		bson_t* bson = bson_new_from_json((const uint8_t *)json.c_str(),-1,&error);
		if (!bson)
			continue;
        //插入一条到mongodb中
		if (!mongoc_collection_insert_one(collection,bson,&error))
		{
			fprintf(stderr,error.message);
			bson_destroy(bson);
			continue;
		}
		bson_destroy(bson);
		printf("%d\n",i);
	}
    //释放各种对象
	if(collection)
		mongoc_collection_destroy(collection);
	if(database)
		mongoc_database_destroy(database);
	if(uri)
		mongoc_uri_destroy(uri);
	if(client)
		mongoc_client_destroy(client);
	
	mongoc_cleanup();
	PQfinish(m_pgconn);

	return 0;
}

  录入mongodb信息如下所示:

查询前20条记录
Mon Mar 29 2021 09:18:35 GMT+0800-test> db.landsat.find()
{ "_id" : ObjectId("605d9baeaa96d82bb40059a2"),"id" : "1","entityid" : "LC80101172015002LGN00","cloudcover" : 80.81,"processing" : "L1GT","path" : 10,"row" : 117,"shape" : "-79.09922999966409,-139.6608200003422" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059a3"),"id" : "2","entityid" : "LC80260392015002LGN00","cloudcover" : 90.84,"path" : 26,"row" : 39,"shape" : "29.23105999991992,-97.48576000002339" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059a4"),"id" : "3","entityid" : "LC82270742015002LGN00","cloudcover" : 83.44,"path" : 227,"row" : 74,"shape" : "-21.285979999676442,-59.277360000163185" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059a5"),"id" : "4","entityid" : "LC82270732015002LGN00","cloudcover" : 52.29,"processing" : "L1T","row" : 73,"shape" : "-19.843650000146624,-58.93257999966653" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059a6"),"id" : "5","entityid" : "LC82270622015002LGN00","cloudcover" : 38.85,"row" : 62,"shape" : "-3.9529399998803,-55.3889599997035" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059a7"),"id" : "6","entityid" : "LC82111152015002LGN00","cloudcover" : 22.93,"path" : 211,"row" : 115,"shape" : "-78.54179000030763,-79.3614800002012" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059a8"),"id" : "7","entityid" : "LC81791202015002LGN00","cloudcover" : 7.67,"path" : 179,"row" : 120,"shape" : "-82.84798999973805,-65.4305599996436" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059a9"),"id" : "8","entityid" : "LC82111112015002LGN00","cloudcover" : 43.43,"row" : 111,"shape" : "-73.85498999968809,-65.85499999994937" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059aa"),"id" : "9","entityid" : "LC81950292015002LGN00","cloudcover" : 21.02,"path" : 195,"row" : 29,"shape" : "43.482350000353165,5.347290000234182" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059ab"),"id" : "10","entityid" : "LC81790452015002LGN00","cloudcover" : 1.92,"row" : 45,"shape" : "20.589169999996386,24.04268999984447" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059ac"),"id" : "11","entityid" : "LC81951112015002LGN00","cloudcover" : 81.56,"shape" : "-73.58112000018718,-40.430350000351496" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059ad"),"id" : "12","entityid" : "LC81950372015002LGN00","cloudcover" : 0,"row" : 37,"shape" : "32.105319999619155,2.1216200000637855" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059ae"),"id" : "13","entityid" : "LC81790442015002LGN00","row" : 44,"shape" : "22.03263999993692,24.373359999864988" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059af"),"id" : "14","entityid" : "LC81790412015002LGN00","cloudcover" : 38.22,"row" : 41,"shape" : "26.36084000036658,25.398240000376575" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059b0"),"id" : "15","entityid" : "LC81951122015002LGN00","cloudcover" : 54.9,"row" : 112,"shape" : "-74.85996999981495,-43.25487000044944" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059b1"),"id" : "16","entityid" : "LC81790402015002LGN00","cloudcover" : 28.34,"row" : 40,"shape" : "27.80228000022271,25.751709999617674" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059b2"),"id" : "17","entityid" : "LC81630432015002LGN00","cloudcover" : 1.57,"path" : 163,"row" : 43,"shape" : "23.484589999729565,49.441580000417616" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059b3"),"id" : "18","entityid" : "LC81630422015002LGN00","cloudcover" : 2.49,"row" : 42,"shape" : "24.926129999700606,49.782079999593236" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059b4"),"id" : "19","entityid" : "LC81630402015002LGN00","cloudcover" : 1.13,"shape" : "27.801170000296167,50.48511999988898" }
{ "_id" : ObjectId("605d9baeaa96d82bb40059b5"),"id" : "20","entityid" : "LC80900752015002LGN00","cloudcover" : 7.18,"path" : 90,"row" : 75,"shape" : "-22.72508000044087,152.04860000039082" }
Type "it" for more
Mon Mar 29 2021 09:18:47 GMT+0800-test> db.landsat.count()
1059757

//查询entityid值为LC81630422015002LGN00的记录
Mon Mar 29 2021 10:24:35 GMT+0800-test> db.landsat.find({"entityid":"LC81630422015002LGN00"})
{ "_id" : ObjectId("605d9baeaa96d82bb40059b3"),49.782079999593236" }
//_id值为605d9baeaa96d82bb40059aa的记录
db.landsat.find({"_id":ObjectId("605d9baeaa96d82bb40059aa")})
{ "_id" : ObjectId("605d9baeaa96d82bb40059aa"),5.347290000234182" }
//查询cloudcover值为21.02的记录数量
db.landsat.find({"cloudcover":21.02}).count()
118
//查询大于21.02小于30的cloudcover的记录数量
db.landsat.find({"cloudcover":{"$gte":21.02,"$lte":30}}).count()
76892

查看执行计划,可以查看执行路径以及执行时间,此事例中走的是索引扫描,执行时间为163毫秒
Mon Mar 29 2021 10:40:02 GMT+0800-test> db.landsat.find({"cloudcover":{"$gte":21.02,"$lte":30}}).explain("executionStats")
{
        "queryPlanner" : {
                "plannerVersion" : 1,"namespace" : "test.landsat","indexFilterSet" : false,"parsedQuery" : {
                        "$and" : [
                                {
                                        "cloudcover" : {
                                                "$lte" : 30
                                        }
                                },{
                                        "cloudcover" : {
                                                "$gte" : 21.02
                                        }
                                }
                        ]
                },"winningPlan" : {
                        "stage" : "FETCH","inputStage" : {
                                "stage" : "IXSCAN","keyPattern" : {
                                        "cloudcover" : 1
                                },"indexName" : "cloudcover_1","isMultiKey" : false,"multiKeyPaths" : {
                                        "cloudcover" : [ ]
                                },"isUnique" : false,"isSparse" : false,"isPartial" : false,"indexVersion" : 2,"direction" : "forward","indexBounds" : {
                                        "cloudcover" : [
                                                "[21.02,30.0]"
                                        ]
                                }
                        }
                },"rejectedPlans" : [ ]
        },"executionStats" : {
                "executionSuccess" : true,"nReturned" : 76892,"executionTimeMillis" : 163,"totalKeysExamined" : 76892,"totalDocsExamined" : 76892,"executionStages" : {
                        "stage" : "FETCH","executionTimeMillisEstimate" : 24,"works" : 76893,"advanced" : 76892,"needTime" : 0,"needYield" : 0,"saveState" : 76,"restoreState" : 76,"isEOF" : 1,"docsExamined" : 76892,"alreadyHasObj" : 0,"executionTimeMillisEstimate" : 5,30.0]"
                                        ]
                                },"keysExamined" : 76892,"seeks" : 1,"dupsTested" : 0,"dupsDropped" : 0
                        }
                }
        },"serverInfo" : {
                "host" : "bigdataserver.esrichina.com","port" : 27017,"version" : "4.4.4","gitVersion" : "8db30a63db1a9d84bdcad0c83369623f708e0397"
        },"ok" : 1
}

将相关索引删除掉后的变化,执行计划走了全表扫描(COLLSCAN),执行时间也变成了517ms
db.landsat.dropIndex('cloudcover_1')
{ "nIndexesWas" : 3,"ok" : 1 }
Mon Mar 29 2021 11:27:19 GMT+0800-test> db.landsat.find({"cloudcover":{"$gte":21.02,"winningPlan" : {
                        "stage" : "COLLSCAN","filter" : {
                                "$and" : [
                                        {
                                                "cloudcover" : {
                                                        "$lte" : 30
                                                }
                                        },{
                                                "cloudcover" : {
                                                        "$gte" : 21.02
                                                }
                                        }
                                ]
                        },"direction" : "forward"
                },"executionTimeMillis" : 517,"totalKeysExamined" : 0,"totalDocsExamined" : 1059757,"executionStages" : {
                        "stage" : "COLLSCAN","executionTimeMillisEstimate" : 42,"works" : 1059759,"needTime" : 982866,"saveState" : 1059,"restoreState" : 1059,"docsExamined" : 1059757
                }
        },"ok" : 1
}

查看collection的索引以及大小信息

分别在_id,cloudcover三个字段上建有索引,其中_id_为系统自带索引,剩下两个为自定义索引
Mon Mar 29 2021 09:32:48 GMT+0800-test> db.landsat.getIndexes()
[
        {
                "v" : 2,"key" : {
                        "_id" : 1
                },"name" : "_id_"
        },{
                "v" : 2,"key" : {
                        "entityid" : 1
                },"name" : "entityid_1"
        },"key" : {
                        "cloudcover" : 1
                },"name" : "cloudcover_1"
        }
]

获取collection的大小
//整个colletion存储空间,包括索引以及已分配的空闲空间
Mon Mar 29 2021 10:18:06 GMT+0800-test> db.landsat.totalSize()
115109888
//单collection存储空间,包括已分配的空闲空间
Mon Mar 29 2021 10:18:20 GMT+0800-test> db.landsat.storageSize()
79790080
//索引的存储空间
Mon Mar 29 2021 10:18:38 GMT+0800-test> db.landsat.totalIndexSize()
35319808

与放在pg中进行比较

\dt+ landsat
                       关联列表
 架构模式 |  名称   |  类型  | 拥有者 |  大小  | 描述
----------+---------+--------+--------+--------+------
 sde      | landsat | 数据表 | sde    | 360 MB |


pg明显比mongo占用空间多的原因是pg每条记录都包括头信息,同时有些字段还包括字段值大小,另外shape由于存储方式不同,因此占用的空间也大不相同。

  导入导出相关信息

   可以使用mongodump和mongorestore这对工具进行导出和导入。

   也可以使用mongoexport和mongoimport这对工具进行导出和导入。

   mongodump是以bson形式导出,可以以库为单位导出,也可以单个collection导出,如果以库为单位导出,如下所示  

指定导出目录为e盘,但是会根据库名字自动建立库名字命名的文件夹,然后将库中每个collection进行导出,
每个collection会生成两个文件,一个是collection.bson,一个是collection.metadata.json,bson后缀的文件包含实际collection的数据,json后缀的文件包括collection的元信息,包括索引等信息
c:\Program Files\MongoDB\Server\4.4\bin>mongodump /out:e:/ /db:test  mongodb://192.168.100.138:27017
2021-03-31T14:18:36.748+0800    writing test.movies to e:\test\movies.bson
2021-03-31T14:18:36.769+0800    writing test.test to e:\test\test.bson
2021-03-31T14:18:36.770+0800    writing test.landsat to e:\test\landsat.bson
2021-03-31T14:18:36.806+0800    done dumping test.movies (10 documents)
2021-03-31T14:18:36.806+0800    done dumping test.test (2 documents)
2021-03-31T14:18:39.729+0800    [######################..]  test.landsat  996782/1059757  (94.1%)
2021-03-31T14:18:39.779+0800    [########################]  test.landsat  1059757/1059757  (100.0%)
2021-03-31T14:18:39.779+0800    done dumping test.landsat (1059757 documents)

  mongorestore恢复过程

使用nongo工具删除库
Wed Mar 31 2021 14:28:34 GMT+0800-test> db.dropDatabase()
{ "dropped" : "test","ok" : 1 }

恢复如下,工具会自动到相关目录中搜索bson以及json文件进行自动处理
mongorestore mongodb://192.168.100.138:27017 /db:test  e:/test
2021-03-31T14:29:29.688+0800    The --db and --collection flags are deprecated for this use-case; please use --nsInclude instead,i.e. with --nsInclude=${DATABASE}.${COLLECTION}
2021-03-31T14:29:29.710+0800    building a list of collections to restore from e:\test dir
2021-03-31T14:29:29.713+0800    reading metadata for test.landsat from e:\test\landsat.metadata.json
2021-03-31T14:29:29.713+0800    reading metadata for test.movies from e:\test\movies.metadata.json
2021-03-31T14:29:29.714+0800    reading metadata for test.test from e:\test\test.metadata.json
2021-03-31T14:29:30.001+0800    restoring test.landsat from e:\test\landsat.bson
2021-03-31T14:29:30.109+0800    restoring test.movies from e:\test\movies.bson
2021-03-31T14:29:30.120+0800    no indexes to restore
2021-03-31T14:29:30.120+0800    finished restoring test.movies (10 documents,0 failures)
2021-03-31T14:29:30.184+0800    restoring test.test from e:\test\test.bson
2021-03-31T14:29:30.196+0800    no indexes to restore
2021-03-31T14:29:30.196+0800    finished restoring test.test (2 documents,0 failures)
2021-03-31T14:29:32.687+0800    [####....................]  test.landsat  32.5MB/183MB  (17.8%)
2021-03-31T14:29:35.687+0800    [#########...............]  test.landsat  69.2MB/183MB  (37.9%)
2021-03-31T14:29:38.688+0800    [##############..........]  test.landsat  107MB/183MB  (58.5%)
2021-03-31T14:29:41.687+0800    [##################......]  test.landsat  141MB/183MB  (77.1%)
2021-03-31T14:29:44.687+0800    [#######################.]  test.landsat  178MB/183MB  (97.3%)
2021-03-31T14:29:45.075+0800    [########################]  test.landsat  183MB/183MB  (100.0%)
2021-03-31T14:29:45.075+0800    restoring indexes for collection test.landsat from metadata
2021-03-31T14:29:47.325+0800    finished restoring test.landsat (1059757 documents,0 failures)
2021-03-31T14:29:47.325+0800    1059769 document(s) restored successfully. 0 document(s) failed to restore.

恢复完成后
Wed Mar 31 2021 14:31:20 GMT+0800-test> show collections
landsat
movies
test
Wed Mar 31 2021 14:31:24 GMT+0800-test> db.landsat.count()
1059757

  mongoexport(可以将collection导出成json或者csv格式,只支持collection级别的导出,并且不会导出collection的元信息)

导出成json格式
mongoexport /out:e:/test/landat.json /db:test /collection:landsat mongodb://192.168.100.138:27017
2021-03-31T16:14:02.893+0800    connected to: mongodb://192.168.100.138:27017
2021-03-31T16:14:03.916+0800    [#.......................]  test.landsat  64000/1059757  (6.0%)
2021-03-31T16:14:04.917+0800    [###.....................]  test.landsat  136000/1059757  (12.8%)
2021-03-31T16:14:05.917+0800    [####....................]  test.landsat  208000/1059757  (19.6%)
2021-03-31T16:14:06.918+0800    [######..................]  test.landsat  280000/1059757  (26.4%)
2021-03-31T16:14:07.916+0800    [#######.................]  test.landsat  352000/1059757  (33.2%)
2021-03-31T16:14:08.917+0800    [#########...............]  test.landsat  440000/1059757  (41.5%)
2021-03-31T16:14:09.916+0800    [###########.............]  test.landsat  512000/1059757  (48.3%)
2021-03-31T16:14:10.916+0800    [#############...........]  test.landsat  576000/1059757  (54.4%)
2021-03-31T16:14:11.916+0800    [##############..........]  test.landsat  648000/1059757  (61.1%)
2021-03-31T16:14:12.917+0800    [################........]  test.landsat  720000/1059757  (67.9%)
2021-03-31T16:14:13.917+0800    [##################......]  test.landsat  800000/1059757  (75.5%)
2021-03-31T16:14:14.916+0800    [###################.....]  test.landsat  880000/1059757  (83.0%)
2021-03-31T16:14:15.917+0800    [#####################...]  test.landsat  952000/1059757  (89.8%)
2021-03-31T16:14:16.917+0800    [#######################.]  test.landsat  1032000/1059757  (97.4%)
2021-03-31T16:14:17.211+0800    [########################]  test.landsat  1059757/1059757  (100.0%)
2021-03-31T16:14:17.211+0800    exported 1059757 records

 mongoimport导入流程

Wed Mar 31 2021 16:37:21 GMT+0800-test> db.landsat.drop()
true

mongoimport /db:test /collection:landsat mongodb://192.168.100.138:27017 e:/test/landsat.json
2021-03-31T16:46:28.978+0800    connected to: mongodb://192.168.100.138:27017
2021-03-31T16:46:31.979+0800    [###.....................] test.landsat 32.9MB/200MB (16.5%)
2021-03-31T16:46:34.979+0800    [########................] test.landsat 68.2MB/200MB (34.1%)
2021-03-31T16:46:37.979+0800    [############............] test.landsat 105MB/200MB (52.4%)
2021-03-31T16:46:40.979+0800    [#################.......] test.landsat 142MB/200MB (71.0%)
2021-03-31T16:46:43.978+0800    [#####################...] test.landsat 179MB/200MB (89.5%)
2021-03-31T16:46:45.659+0800    [########################] test.landsat 200MB/200MB (100.0%)
2021-03-31T16:46:45.659+0800    1059757 document(s) imported successfully. 0 document(s) failed to import.

  aggregate:

  

 db.dltb.aggregate([{$match:{zldwmc:"围村村委会"}},{$project:{_id:0,shape_leng:1,tbmj1:"$tbmj"}},{$sort:{shape_leng:1}},{$skip:10},{$limit:5}]).pretty()
{ "shape_leng" : 72.02594049,"tbmj1" : 180.15 }
{ "shape_leng" : 72.94600482,"tbmj1" : 313.03 }
{ "shape_leng" : 76.98691841,"tbmj1" : 392.64 }
{ "shape_leng" : 79.50763485,"tbmj1" : 416.67 }
{ "shape_leng" : 80.62169182,"tbmj1" : 131.19 }


select zldwmc,max(shape_leng),min(shape_leng) from dltb group by zldwmc;
db.dltb.aggregate([{$group : {_id : "$zldwmc",max : {$max : "$shape_len"},min:{$min:"$shape_len"}}}])


db.dltb.aggregate([{$match:{zldwmc:"河边村村委会"}},{$group : {_id : "$zldwmc",putresult: {$push : "$shape_leng"}}}])
{ "_id" : "河边村村委会","putresult" : [ 99.40712538,102.36057367,104.54855408,116.24146144,119.35984173,125.48743115,125.62949464,126.42127865,128.92065772,129.70264764,131.170776,131.77536112,132.04617498,136.24933499,136.98661635,137.72935085,138.41202079,139.05893734,141.15677031,144.5034053,145.0191613,145.03473565,146.11873848,147.43097363,152.1220918,152.57367265,154.07369476,155.5130736,158.31569483,160.08748463,162.29848267,162.9647573,163.31695951,171.69619333,176.12958515,176.3020228,178.29178324,182.51725166,185.92057129,186.36180633,186.4674956,187.31812123,187.74772456,188.03341752,189.29474394,189.88874338,190.98409935,191.26693228,191.99302483,192.53095055,192.60807368,194.34164883,196.59779562,199.91707304,202.03983356,203.83659298,206.49870674,206.67429068,206.98980224,209.72779394,211.92738115,213.37018956,213.6247351,214.1895983,214.90288623,216.22596842,217.37149513,217.97446154,218.54891216,221.24838385,222.43653477,223.66592261,225.87440157,228.72740555,230.05915178,230.86532784,231.37716221,232.35732707,234.16537307,236.90284773,240.47073571,240.88440101,241.09838194,241.46829632,241.51522213,245.8834796,249.71509711,249.96682727,250.56505492,251.71244681,256.45277654,257.76221186,259.19999048,259.5180976,260.42810978,263.74174412,266.24240954,270.0267575,273.47214562,274.74935514,275.24139076,277.94334263,281.30860928,282.29692266,287.74030798,288.46435405,289.38632528,290.0487507,292.45216351,293.46034424,294.71099858,295.37155526,296.15800066,296.87974872,297.85707847,299.37225774,300.35709887,300.8409395,302.53316957,303.86917884,304.61376049,305.66795155,307.50706647,309.26193962,309.66691146,312.77576476,313.77553476,314.90217649,320.13710571,321.67117777,322.93670009,323.03661894,323.49288037,323.98611128,325.67538111,330.00665229,330.02289156,330.16727499,333.9926748,334.37407119,340.03909586,340.12853224,342.11860841,343.10470978,345.00823062,346.59617852,351.2072364,352.42306459,353.27109909,354.65864891,360.81264728,361.71370937,361.83430892,364.9586323,365.16960213,365.23055043,366.15480555,371.25166243,372.89383972,374.90343367,376.2437189,376.85409985,377.60775871,378.44269886,378.57153797,380.32467001,384.22572297,384.42656714,384.7248453,385.82794842,386.98929864,390.39018474,393.54451658,401.3330031,401.71657434,403.5062881,406.6432758,407.31379446,408.38454544,411.98419378,412.8020323,414.75187346,419.2303266,420.7914334,425.09051403,425.13546676,427.15478017,427.81401429,427.96368212,436.30607157,437.61320349,439.52314964,443.91188027,449.00423414,450.24742687,450.39923999,452.76348386,453.05906796,456.51356834,459.05892656,459.21703335,459.4174793,461.48882947,464.24790282,468.59546979,468.59634968,468.83598294,470.39275595,470.7626457,471.36562,474.57704127,475.70458578,476.18340352,478.40169861,490.24300713,490.81264915,493.74025682,495.39607232,499.73241627,500.57138784,501.8063027,521.35162282,523.13963482,524.69568747,525.14900933,530.39444289,536.45266998,541.76358939,542.66313045,546.58544334,547.02706657,547.56217317,555.35432816,558.48295156,560.84521632,563.61562404,571.72267746,579.5851921,586.38954961,588.09626845,592.04617101,601.25771374,604.51040936,609.21679846,611.7999161,614.35519806,621.78143856,624.15932672,629.2161524,629.44031167,634.28568971,642.9130542,654.05198968,656.1776533,661.52971559,662.24986482,665.25585308,674.38579717,677.1313134,678.48172186,679.43010437,680.21186381,688.51957737,700.32158396,706.86375025,707.07443218,708.66209989,711.35615071,722.11206155,726.55510027,732.96837938,736.26656198,738.89251708,740.65771181,751.14986554,755.67160388,761.26112137,761.84438219,765.14930986,778.02798937,805.4269242,812.07828185,824.54834521,834.57022234,843.18728273,845.92364668,850.45623974,856.06457945,861.26372955,862.72068767,863.24060065,875.38983886,879.75447891,880.22346842,898.77788635,902.83538544,907.61740631,910.12235553,914.14471559,929.01556018,935.37489117,942.91568717,946.52860066,961.81244628,963.51326341,1003.43671822,1004.31753955,1010.9637607,1013.66111662,1030.80883021,1031.83238975,1039.29017885,1046.86865943,1049.04895191,1051.14704428,1061.29316601,1069.79825956,1097.20777079,1114.29773758,1123.16719335,1139.67465374,1142.34475825,1144.21962266,1149.15819694,1159.09597922,1160.71181,1183.01860673,1204.73488915,1223.53097743,1244.54910989,1267.87018212,1285.463447,1295.58929975,1295.71708521,1300.44742469,1318.16444488,1325.03335706,1337.51525862,1341.71204045,1356.91281671,1372.83440168,1414.1369536,1503.81236767,1604.79385463,1674.24213093,1737.71668168,1762.64786327,1782.59566472,1840.93250353,1893.80145543,1956.96688366,2036.3711091,2101.45435379,2115.81633062,2183.94727517,2192.28618557,2230.86886654,2264.28300561,2377.91857196,2407.49394482,2416.03426706,2667.60192168,2881.36017826,3004.25414866,3099.34361499,3100.19235926,3206.58452128,3481.43259945,3709.19269136,3905.40399032,4483.05581909,5462.74776216,5893.17849218,8285.45580338,8373.95567826,10134.0080367,10892.0628387,11306.8393023,16829.716139,28715.9040926,32886.9005115 ] }

原文地址:https://blog.csdn.net/liufeng1980423/article/details/115213761

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读552次。com.mongodb.MongoQueryException: Query failed with error code 292 and error message 'Executor error during find command :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.' on server 11.51.141.63:27017 _mongodb 大文件 下载失败
文章浏览阅读635次,点赞9次,收藏8次。MongoDB 是一种 NoSQL 数据库,它将每个数据存储为一个文档,这里的文档类似于 JSON/BSON 对象,具体数据结构由键值(key/value)对组成。
文章浏览阅读2.1k次。和。_mongodb 日期类型
文章浏览阅读1.7k次。Scalestack等客户期待使用MongoDB Atlas Vector Search和Amazon Bedrock构建下一代应用程序
文章浏览阅读970次。SpringBoot整合中间件mongodb、ES_springboot3 elasticsearch json数据
文章浏览阅读673次。MongoDB 简介_尚医通sql
文章浏览阅读1k次,点赞8次,收藏9次。官网下载MongoDB安装包后进行解压(因了解并不深入,故暂不进行详细说明,自行查找其他安装方法,后期了解深入后将进行该教程的完善)在bin目录下使用命令启动:./mongod --config …/mongodb.conf。该文章任然处于完善中,如果存在错误遗漏的地方,欢迎私信联系。安装相关的nuget包后即可通过以下方法连接数据。YX9010_0@的第二十篇文章。
文章浏览阅读1.2k次,点赞17次,收藏26次。社交场景, 使用 MongoDB 存储存储用户信息, 以及用户发表的朋友圈信息, 通过地理位置索引实现附近的人, 地点等功能.游戏场景, 使用 MongoDB 存储游戏用户信息, 用户的装备, 积分等直接以内嵌文档的形式存储, 方便查询, 高效率存储和访问.物流场景, 使用 MongoDB 存储订单信息, 订单状态在运送过程中会不断更新, 以 MongoDB 内嵌数组的形式来存储, 一次查询就能将订单所有的变更读取出来.物联网场景, 使用 MongoDB 存储所有接入的智能设备信息, 以及设备汇报的日
文章浏览阅读686次。您可以使用 update_one() 方法来更新 MongoDB 中调用的记录或文档。update_one() 方法的第一个参数是 query 对象,用于定义要更新的文档。注释:如果查询找到多个记录,则仅更新第一个匹配项。第二个参数是定义文档新值的对象。_python 更新 mongodb 数据
文章浏览阅读1.3k次。首先来学习一下nosql这里安装就不进行介绍 只记录一下让自己了解mongodb。_nosql注入
文章浏览阅读4.1k次,点赞8次,收藏7次。在data的目录下,创建一个db文件。因为启动MongoDB服务之前必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。第一步:安装时,Custom是指可以自定义安装路径,然后傻瓜式安装即可(注意:先不要安装图形化工具,否则安装时间会特别长):如果要想连接成功,必须要开服务,即mongod -dbpath C:MongoDBdatadb的cmd要一直开着。然后回车,ctrl+F输入port找到端口号,一般为:27017。打开命令行,然后找到bin文件地址,并输入。_mongodb windows安装
文章浏览阅读5.1k次,点赞3次,收藏43次。详细介绍MongoDB数据库的基本知识,安装方法,基本操作,_mongodb数据库
文章浏览阅读3.2k次。安装教程翻看以往文章。_navicat 连接mongodb
文章浏览阅读426次,点赞9次,收藏12次。win10开放端口:https://blog.csdn.net/m0_43605481/article/details/119255256。我的是阿里云服务器,所以直接在安全组中加入规则,端口范围:27017,授权对象:0.0.0.0。windows在mongodb安装文件夹的bin文件夹中的mongod.cfg。数据库名字是test,打算创建一个用户,账号aaa,密码bbb,权限readWrite。因为该用户是创建在test数据库的,所以在最后要加上test。O了,然后恢复了test的数据。
文章浏览阅读1.1k次。聚合操作主要用于处理数据并返回计算结果。聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和、平均值、最大值、最小值)以返回单个结果。MongoDB的聚合查询​聚合是MongoDB的高级查询语言,它允许我们通过转化合并由多个文档的数据来生成新的在单个文档里不存在的文档信息。MongoDB中聚合(aggregate)主要用于处理数据(例如分组统计平均值、求和、最大值等),并返回计算后的数据结果,有点类似sql语句中的count(*)、groupby。..._如何将几个db的数据统整在一起做查询
文章浏览阅读680次,点赞7次,收藏8次。(2)application.properties配置文件。(4)UserService类。(5)测试和测试结果。
文章浏览阅读1k次,点赞17次,收藏25次。Studio 3T 2023.9 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持自然语言查询_mongodb客户端
文章浏览阅读1.1k次,点赞32次,收藏27次。插件式的存储引擎架构可以实现 Server 层和存储引擎层的解耦,可以支持多种存储引擎,如 MySQL 既可以支持 B-Tree 结构的 InnoDB 存储引擎,还可以支持 LSM 结构的 RocksDB 存储引擎。MongoDB 中的记录就是一个 BSON 文档,它是由键值对组成的数据结构,类似于 JSON 对象,是 MongoDB 中的基本数据单元。的简称,是 JSON 文档的二进制表示,支持将文档和数组嵌入到其他文档和数组中,还包含允许表示不属于 JSON 规范的数据类型的扩展。
文章浏览阅读5.1k次,点赞6次,收藏96次。本文设计了一种基于智能室内温度控制的自动调速风扇。以STM32系列单片机为核心主控板,通过程序代码驱动和使用温度传感器模块实现对环境温度的实时监测,并可以实时显示环境温度。同时,可以设置温度检测的上下警告值,根据需求自行调节。_stm32 温控风扇
文章浏览阅读898次,点赞13次,收藏21次。在MongoDB中,我们使用find()和find_one()方法来在集合中查找数据,就像在MySQL数据库中使用SELECT语句来在表中查找数据一样。_pymongo find_one