MongoDB Common operations Go

Source: Internet
Author: User
Tags tojson

Øcollection Aggregation Collection

1. Create a Clustered collection (table)
Db.createcollection ("Collname", {size:20, Capped:5, max:100});
2. Get a clustered collection with the specified name (table)
Db.getcollection ("account");
3. Get all the aggregation sets of the current DB
Db.getcollectionnames ();
4. Displays the status of all clustered indexes in the current DB
Db.printcollectionstats ();

Ø User-related

1. Add a user
Db.adduser ("name");
Db.adduser ("UserName", "pwd123", true);
Add user, set password, read-only
2, database authentication, security mode
Db.auth ("UserName", "123123");
3. Show all current users
Show Users;
4. Delete users
Db.removeuser ("UserName");

Ø Other

1, the error message before the query
Db.getpreverror ();
2. Clear the Error Record
Db.reseterror ();
Three, collection aggregation set operation

Ø View Aggregate Collection basic information

1. View Help
Db.yourColl.help ();
2 . Query the number of data bars in the current collection
Db.yourColl.count ();
3. View data space size
Db.userInfo.dataSize ();
4. Get the db where the current aggregation collection resides
Db.userInfo.getDB ();
5. Get the current aggregation status
Db.userInfo.stats ();
6, get the aggregate aggregate size
Db.userInfo.totalSize ();
7, aggregate storage space size
Db.userInfo.storageSize ();
8. Shard Version Information
Db.userInfo.getShardVersion ()
9. Clustered Collection Rename
Db.userInfo.renameCollection ("users");
Rename UserInfo to users
10. Delete the current aggregation collection
Db.userInfo.drop ();

Ø Aggregation Collection Query

1. Check all records
Db.userInfo.find ();
Equivalent to: SELECT * from UserInfo;
The default is 20 records per page, and you can query the next page of data with the IT iteration command when the display is not displayed. Note: Type the IT command cannot take ";"
However, you can set the size of the data displayed on each page, using Dbquery.shellbatchsize = 50, so that 50 records per page are displayed.
2. Duplicate data for a column in the current clustered collection after the query is removed
Db.userInfo.distinct ("name");
Will filter out the same data in name
Equivalent: Select Distict name from UserInfo;
3. Check the record of age = 22
Db.userInfo.find ({"Age": 22});
Equivalent to: SELECT * from userInfo where age = 22;
4. Check the records of age > 22
Db.userInfo.find ({age: {$gt: 22}});
Equivalent to: SELECT * from UserInfo where age > 22;
5. Check the records of age < 22
Db.userInfo.find ({age: {$lt: 22}});
Equivalent to: SELECT * from UserInfo where age < 22;
6. Check the records of age >= 25
Db.userInfo.find ({age: {$gte: 25}});
Equivalent to: SELECT * from UserInfo where age >= 25;
7. Check the records of age <= 25
Db.userInfo.find ({age: {$lte: 25}});
8. Query age >= 23 and age <= 26
Db.userInfo.find ({age: {$gte: $lte: 26}});
9. Query the data containing MONGO in name
Db.userInfo.find ({name:/mongo/});
Equal to percent
SELECT * from UserInfo where name is like '%mongo% ';
10, query the name in the beginning of MONGO
Db.userInfo.find ({name:/^mongo/});
SELECT * from UserInfo where name is like ' mongo% ';
11. Query the specified column name, age data
Db.userInfo.find ({}, {name:1, age:1});
Equivalent to: Select Name, age from UserInfo;
Of course name can also be used with true or false, as in the case of Ture River Name:1 effect, if False is to exclude name, display column information other than name.
12. Query the specified column name, age data, age > 25
Db.userInfo.find ({age: {$gt: +}}, {name:1, age:1});
Equivalent to: Select Name, age from UserInfo where age > 25;
13. Sort by age
Ascending: Db.userInfo.find (). Sort ({age:1});
Descending: Db.userInfo.find (). Sort ({Age:-1});
14. Query name = Zhangsan, age = 22 data
Db.userInfo.find ({name: ' Zhangsan ', age:22});
Equivalent to: SELECT * from userInfo where name = ' Zhangsan ' and "age = ' 22 ';
15, query the first 5 data
Db.userInfo.find (). Limit (5);
Equivalent: Select Top 5 * from UserInfo;
16, the query 10 after the data (starting from the 11th article
Db.userInfo.find (). Skip (10);
Equivalent to: SELECT * from UserInfo where ID not in (
Select Top Ten * from UserInfo
);
17, Query the data between 5-10
Db.userInfo.find (). Limit (Ten). Skip (5);
Can be used for pagination, limit is Pagesize,skip is the first few pages *pagesize
18, OR and query
Db.userInfo.find ({$or: [{age:22}, {age:25}]});
Equivalent to: SELECT * from UserInfo where is age = 25
19. Query the first piece of data
Db.userInfo.findOne ();
Equivalent: SELECT top 1 * from UserInfo;
Db.userInfo.find (). limit (1);
20. Query the number of record bars for a result set
Db.userInfo.find ({age: {$gte: +}}). Count ();
Equivalent to: SELECT COUNT (*) from UserInfo where age >= 20;
21. Sort by a column
Db.userInfo.find ({sex: {$exists: true}}). Count ();
Equivalent to: SELECT COUNT (Sex) from userInfo;

Ø Index

1. Create an index
Db.userInfo.ensureIndex ({name:1});
Db.userInfo.ensureIndex ({name:1, TS:-1});
2. Querying all indexes of the current aggregation collection
Db.userInfo.getIndexes ();
3. View Total index record size
Db.userInfo.totalIndexSize ();
4. Read all index information for the current collection
Db.users.reIndex ();
5. Delete the specified index
Db.users.dropIndex ("Name_1");
6. Delete all index indexes
Db.users.dropIndexes ();

Ø Modify, add, and delete collection data

1. Add
Db.users.save ({name: ' Zhangsan ', age:25, sex:true});
Data column of the added data, not fixed, according to the data added
2. Modification
Db.users.update ({age:25}, {$set: {name: ' ChangeName '}}, False, True);
Equivalent to: Update users set name = ' ChangeName ' where age = 25;
Db.users.update ({name: ' Lisi '}, {$inc: {age:50}}, False, True);
Equivalent to: Update users set age = Age + where name = ' Lisi ';
Db.users.update ({name: ' Lisi '}, {$inc: {age:50}, $set: {name: ' HoHo '}}, False, True);
Equivalent to: Update users set age = Age +, name = ' HoHo ' WHERE name = ' Lisi ';
3. Delete
Db.users.remove ({age:132});
4, Query modification Delete
Db.users.findAndModify ({
    
    
    Update: {$set: {name: ' A2 '}, $inc: {age:2}},
    Remove:true
});
    
    
    Update: {$set: {name: ' A2 '}, $inc: {age:2}},
    Remove:true
});

update or remove One of them is a required parameter; Additional parameters are optional.

Parameters

Detailed

Default value

Query

Query Filter Criteria

{}

Sort

If multiple documents conform to a query filter, the first-ranked object will be selected in the arrangement specified by the parameter, and the object will be manipulated

{}

Remove

If true, the selected object will be deleted before it is returned

N/A

Update

A Modifier object

N/A

New

If true, the modified object is returned instead of the original object. In the delete operation, the parameter is ignored.

False

Fields

See Retrieving a subset of fields (1.5.0+)

All fields

Upsert

Creates a new object if the query result is empty. Example (1.5.4+)

False

Ø Statement block operations

1. Simple Hello World
Print ("Hello world!");
This notation calls the print function, and writes "Hello world!" directly The effect is the same;
2. Convert an object to JSON
Tojson (New Object ());
Tojson (New Object (' a '));
3. Loop Add data
> for (var i = 0; i < i++) {
... db.users.save ({name: "u_" + I, age:22 + i, sex:i% 2});
... };
This adds 30 data to the loop, and you can also omit the notation
> for (var i = 0; i < i++) Db.users.save ({name: "u_" + I, age:22 + i, sex:i% 2});
is also possible, when you use the Db.users.find () query, display multiple data and can not be displayed on a page, the use of it to view the next page of information;
4. Find Cursor Query
>var cursor = Db.users.find ();
    
}
This allows you to query all the users information, as well as to write
var cursor = Db.users.find ();
while (Cursor.hasnext ()) {Printjson (cursor.next);}
You can also omit the {} number
5. Foreach Iteration Loops
Db.users.find (). ForEach (Printjson);
A function must be passed in foreach to process data information for each iteration
6. Treat the Find cursor as an array
var cursor = Db.users.find ();
CURSOR[4];
Get the data for subscript index 4
Since it can be treated as an array, its length can be obtained: Cursor.length (); or cursor.count ();
So we can also display the data in a loop
for (var i = 0, Len = c.length (); i < Len; i++) Printjson (C[i]);
7. Convert the Find cursor to an array
> var arr = db.users.find (). ToArray ();
> Printjson (arr[2]);
To convert it to an array using the ToArray method
8. Customize our own query results
Only age <= 28 is displayed and only the Age column data is displayed
Db.users.find ({age: {$lte: +}}, {age:1}). ForEach (Printjson);
Db.users.find ({age: {$lte: +}}, {age:true}). ForEach (Printjson);
Exclude The Age column
Db.users.find ({age: {$lte: +}}, {Age:false}). ForEach (Printjson);
9. The Foreach transfer function displays information
Db.things.find ({x:4}). ForEach (function (x) {print (Tojson (x));});
As described above, foreach needs to pass a function that takes a parameter, that is, the object that is currently looping, and then processes the incoming parameter information in the function weight.

Transferred from: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html

MongoDB Common operations Go

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.