Introduction to AffinityDB
AffinityDB is a high-performance, distributed, and scalable database solution designed for modern applications. It offers a rich set of APIs that make data management efficient and flexible.
Getting Started with AffinityDB
To get started, you’ll need to set up your AffinityDB instance. Use the following code snippet to initialize your database:
import affinitydb
# Initialize the database
db = affinitydb.connect('localhost', 27017)
Creating and Managing Collections
Collections in AffinityDB are like tables in a traditional database. Here’s how you can create and manage collections:
# Create a collection
users = db.create_collection('users')
# Insert a document
users.insert_one({
'name': 'John Doe',
'email': 'john.doe@example.com'
})
# Find a document
user = users.find_one({'email': 'john.doe@example.com'})
print(user)
Advanced Querying
AffinityDB supports complex queries. Here are some examples:
# Find multiple documents
users = db.get_collection('users')
result = users.find({'age': {'$gt': 25}})
for user in result:
print(user)
# Update a document
users.update_one({'email': 'john.doe@example.com'}, {'$set': {'age': 30}})
# Delete a document
users.delete_one({'email': 'john.doe@example.com'})
Aggregation Pipelines
Aggregation operations process data records and return computed results. Here’s how to use aggregation pipelines:
pipeline = [
{'$match': {'status': 'active'}},
{'$group': {'_id': '$age', 'count': {'$sum': 1}}}
]
results = db.get_collection('users').aggregate(pipeline)
for result in results:
print(result)
Indexing for Performance
Use indexes to improve the performance of your queries:
users.create_index('email')
users.create_index([('name', affinitydb.ASCENDING), ('age', affinitydb.DESCENDING)])
Application Example
Below is an example of a small application using the discussed APIs:
from flask import Flask, request, jsonify
import affinitydb
app = Flask(__name__)
db = affinitydb.connect('localhost', 27017)
users = db.get_collection('users')
@app.route('/users', methods=['POST'])
def create_user():
data = request.json
users.insert_one(data)
return jsonify({'msg': 'User created'}), 201
@app.route('/users', methods=['GET'])
def get_users():
user_list = list(users.find())
return jsonify(user_list), 200
@app.route('/users/', methods=['GET'])
def get_user(email):
user = users.find_one({'email': email})
if user:
return jsonify(user), 200
return jsonify({'msg': 'User not found'}), 404
@app.route('/users/', methods=['PUT'])
def update_user(email):
data = request.json
users.update_one({'email': email}, {'$set': data})
return jsonify({'msg': 'User updated'}), 200
@app.route('/users/', methods=['DELETE'])
def delete_user(email):
users.delete_one({'email': email})
return jsonify({'msg': 'User deleted'}), 200
if __name__ == '__main__':
app.run(debug=True)
This example demonstrates a basic CRUD API for managing user data with AffinityDB and Flask.
Hash: 12b9536437c42facf386ec148c4105fd42b7372642347c5cf7a314ba10e261af