[Notes] Mongodb

Below are some self-collected commonly-used commands.

start

1
2
3
4
5
6
7
8
9
10
# run in the background
mongod

# open interactive shell
mongo

# in python
from pymongo import MongoClient
Client = MongoClient()
db = Client[dbname]

database

1
2
3
4
5
6
7
8
# basic
show dbs
show tables/collection
db
use db_name

# delete current database
db.dropDatabase()

collection

1
2
3
4
5
6
7
8
9
# create collection 
db.createCollection("col_name")

# create fixed collection with space 6142800 KB, documents < 10000
db.createCollection("col_name", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )

# delete collection
db.collection.drop()

documents

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# insert documents (collection auto created if not exiested)
db.collection.insertOne({"a": 3})
db.collection.insert({"name":"MarcoCai"})

# insert document indirectly
document = {...}
db.collection.insert(document)

# inset multiple
db.collection.insertMany([{"b": 3}, {'c': 4}])

# find documents under a collection
db.collection.find()
db.collection.find().pretty()
db.col.find({key1:value1, key2:value2}).pretty()
db.col.find( {$or: [ {key1: value1}, {key2:value2} ] }).pretty()
db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

# high level find
db.col.find({"title" : {$type : 2}})
db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键
db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键

# update document
db.test_collection.updateOne({"name":"abc"},{$set:{"age":"28"}})
db.test_collection.updateMany({"age":{$gt:"10"}},{$set:{"status":"xyz"}})

# replace document
db.collection.save( <document> )

# delete document
db.inventory.deleteMany({})
db.inventory.deleteMany({ status : "A" })
db.inventory.deleteOne( { status: "D" } )

symbol

1
2
3
4
5
6
$gt -------- greater than  >
$gte --------- gt equal >=
$lt -------- less than <
$lte --------- lt equal <=
$ne ----------- not equal !=
$eq -------- equal =

Objectid

MongoDB 中存储的文档必须有一个 _id 键。这个键的值可以是任何类型的,默认是个 ObjectId 对象。

由于 ObjectId 中保存了创建的时间戳,所以你不需要为你的文档保存时间戳字段,你可以通过 getTimestamp 函数来获取文档的创建时间:

1
2
var newObject = ObjectId()
newObject.getTimestamp()

data type

数据类型 描述
String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
Boolean 布尔值。用于存储布尔值(真/假)。
Double 双精度浮点值。用于存储浮点值。
Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
Array 用于将数组或列表或多个值存储为一个键。
Timestamp 时间戳。记录文档修改或添加的具体时间。
Object 用于内嵌文档。
Null 用于创建空值。
Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
Object ID 对象 ID。用于创建文档的 ID。
Binary Data 二进制数据。用于存储二进制数据。
Code 代码类型。用于在文档中存储 JavaScript 代码。
Regular expression 正则表达式类型。用于存储正则表达式。
0%