面试题答案
一键面试- 记录文档创建时间:
- 在插入文档时,可以使用
new Date()
来获取当前时间并插入到文档中。假设我们有一个users
集合,示例代码如下(以Node.js的MongoDB驱动为例):
- 在插入文档时,可以使用
const { MongoClient } = require('mongodb');
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);
async function insertUser() {
try {
await client.connect();
const database = client.db('test');
const users = database.collection('users');
const newUser = {
name: 'John Doe',
createdAt: new Date()
};
const result = await users.insertOne(newUser);
console.log('Inserted user with _id:', result.insertedId);
} catch (e) {
console.error(e);
} finally {
await client.close();
}
}
insertUser();
- 在Python中使用
pymongo
库:
from pymongo import MongoClient
from datetime import datetime
client = MongoClient('mongodb://localhost:27017')
db = client.test
users = db.users
new_user = {
'name': 'John Doe',
'createdAt': datetime.now()
}
result = users.insert_one(new_user)
print('Inserted user with _id:', result.inserted_id)
- 筛选近一周内创建的文档:
- 在Node.js中:
async function findRecentUsers() {
try {
await client.connect();
const database = client.db('test');
const users = database.collection('users');
const oneWeekAgo = new Date();
oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);
const recentUsers = await users.find({
createdAt: { $gte: oneWeekAgo }
}).toArray();
console.log('Recent users:', recentUsers);
} catch (e) {
console.error(e);
} finally {
await client.close();
}
}
findRecentUsers();
- 在Python中:
from pymongo import MongoClient
from datetime import datetime, timedelta
client = MongoClient('mongodb://localhost:27017')
db = client.test
users = db.users
one_week_ago = datetime.now() - timedelta(days = 7)
recent_users = list(users.find({
'createdAt': { '$gte': one_week_ago }
}))
print('Recent users:', recent_users)
在MongoDB的查询中,$gte
操作符表示“大于或等于”,我们通过获取当前时间减去7天得到一周前的时间,然后使用这个时间来筛选出近一周内创建的文档。