mongo简单操作

Posted hjqq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongo简单操作相关的知识,希望对你有一定的参考价值。

以下内容均来自https://www.runoob.com/mongodb/mongodb-tutorial.html

 

创建数据库

use DATABASE_NAME




//实例
> use runoob
switched to db runoob
> db
runoob
> 

删除数据库

db.dropDatabase()

//
> use runoob
switched to db runoob
> 
> db.dropDatabase()
{ "dropped" : "runoob", "ok" : 1 }

 

创建集合

//1直接创建
> use test
switched to db test
> db.createCollection("runoob")
{ "ok" : 1 }
>

> db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
   6142800, max : 10000 } )
{ "ok" : 1 }
>


//2直接插入文档
db.mycol2.insert({"name" : "菜鸟教程"})

 

删除集合

db.collection.drop()

//实例
>use mydb
switched to db mydb
>show collections
mycol
mycol2
system.indexes
runoob
>
>db.mycol2.drop()
true
>

 

插入文档

db.COLLECTION_NAME.insert(document)


>db.col.insert({title: MongoDB 教程, 
    description: MongoDB 是一个 Nosql 数据库,
    by: 菜鸟教程,
    url: http://www.runoob.com,
    tags: [mongodb, database, NoSQL],
    likes: 100
})

//
> db.col.find()
{ "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
> 

//我们也可以将数据定义为一个变量,如下所示:
> document=({title: MongoDB 教程, 
    description: MongoDB 是一个 Nosql 数据库,
    by: 菜鸟教程,
    url: http://www.runoob.com,
    tags: [mongodb, database, NoSQL],
    likes: 100
});


//执行后显示结果如下:

{
        "title" : "MongoDB 教程",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "菜鸟教程",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}

3.2 版本后还有以下几种语法可用于插入文档:

 db.collection.insertOne():向指定集合中插入一条文档数据
 db.collection.insertMany():向指定集合中插入多条文档数据
#  插入单条数据

> var document = db.collection.insertOne({"a": 3})
> document
{
        "acknowledged" : true,
        "insertedId" : ObjectId("571a218011a82a1d94c02333")
}

#  插入多条数据
> var res = db.collection.insertMany([{"b": 3}, {c: 4}])
> res
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("571a22a911a82a1d94c02337"),
                ObjectId("571a22a911a82a1d94c02338")
        ]
}

一次插入多条数据

1、先创建数组

2、将数据放在数组中

3、一次 insert 到集合中

var arr = [];

for(var i=1 ; i<=20000 ; i++){
    arr.push({num:i});
}

db.numbers.insert(arr);

 

更新文档

在3.2版本开始,MongoDB提供以下更新集合文档的方法:

db.collection.updateOne() 向指定集合更新单个文档
db.collection.updateMany() 向指定集合更新多个文档
首先我们在test集合里插入测试数据

use test
db.test_collection.insert( [
{"name":"abc","age":"25","status":"zxc"},
{"name":"dec","age":"19","status":"qwe"},
{"name":"asd","age":"30","status":"nmn"},
] )
更新单个文档

> db.test_collection.updateOne({"name":"abc"},{$set:{"age":"28"}})
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
> db.test_collection.find()
{ "_id" : ObjectId("59c8ba673b92ae498a5716af"), "name" : "abc", "age" : "28", "status" : "zxc" }
{ "_id" : ObjectId("59c8ba673b92ae498a5716b0"), "name" : "dec", "age" : "19", "status" : "qwe" }
{ "_id" : ObjectId("59c8ba673b92ae498a5716b1"), "name" : "asd", "age" : "30", "status" : "nmn" }
>
更新多个文档

> db.test_collection.updateMany({"age":{$gt:"10"}},{$set:{"status":"xyz"}})
{ "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 3 }
> db.test_collection.find()
{ "_id" : ObjectId("59c8ba673b92ae498a5716af"), "name" : "abc", "age" : "28", "status" : "xyz" }
{ "_id" : ObjectId("59c8ba673b92ae498a5716b0"), "name" : "dec", "age" : "19", "status" : "xyz" }
{ "_id" : ObjectId("59c8ba673b92ae498a5716b1"), "name" : "asd", "age" : "30", "status" : "xyz" }
>

 

删除文档

remove() 方法已经过时了,现在官方推荐使用 deleteOne() 和 deleteMany() 方法。

如删除集合下全部文档:

db.inventory.deleteMany({})
删除 status 等于 A 的全部文档:

db.inventory.deleteMany({ status : "A" })
删除 status 等于 D 的一个文档:

db.inventory.deleteOne( { status: "D" } )

 

查询文档

db.collection.find(query, projection)

如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
>db.col.find().pretty()

以下实例我们查询了集合 col 中的数据:

> db.col.find().pretty()

技术图片

 

 

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 技术图片用以查询关键字。

^表示以mongo开头的,/mongo$/则是以mongo结尾的,都不加的话包含的都会查询出来。

 

指定列的查询

技术图片

 

 

{name:1,age:1}表示只显示name和age的列。

 

排序

 

技术图片

 

 

 

 

 技术图片

技术图片

 

 

技术图片

 

技术图片

 

 技术图片

 

以上是关于mongo简单操作的主要内容,如果未能解决你的问题,请参考以下文章

Apollo Codegen 没有找到生成代码的操作或片段

mongo 的简单查询语法

mongoDB应用篇-mongo聚合查询

jQuery的DOM操作

MongoDB基础入门003--使用官方驱动操作mongo,C#

Springboot 整合mongodb以及mongo数据操作工具类代码实现