所以,我有两个文件,一个是server.js,另一个是db.js该db.js文件用猫鼬我的数据库交互,我用server.js调用函数从db.js
var mongoose = require('mongoose');
mongoose.connect('', { useNewUrlParser: true })
var Schema = mongoose.Schema;
module.exports = function () {
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
return db.once('open', function() {
console.log("Connected to DB")
var postschema = new Schema({
title: String,
intro: String,
body: String,
author: String,
timestamp: { type: Date, default: Date.now }
});
var post = mongoose.model('post', postschema);
return {
newPost(title, intro, body, author) {
var newpost = new …Run Code Online (Sandbox Code Playgroud) 我正在开发一个连接到 mongo db 数据库的 Spring Boot 应用程序。
我不知道为什么,但有时会出现以下错误:
org.springframework.data.mongodb.MongoTransactionException:查询失败,错误代码 251 和错误消息“给定的事务号 1 与任何正在进行的事务不匹配。” 服务器 <> 上的活动交易编号为 -1';嵌套异常是 com.mongodb.MongoQueryException:查询失败,错误代码 251 和错误消息“给定事务号 1 与任何正在进行的事务不匹配。” 服务器 <> 上的活动交易编号为 -1'。
我尝试阅读更多有关此问题的信息,但找不到太多信息。我发现有时这是由于事务管理器的超时问题造成的,但我只是在收到请求时收到错误。正如您在以下日志中看到的
我在 2021-06-29 13:41:14,054 发送请求,并在 2021-06-29 13:41:14,061 收到错误,仅 10 毫秒后。
我有以下配置:
@Configuration
public class SpringMongoconfig {
@Autowired private MongoDatabaseFactory mongoDbFactory;
@Autowired private MongoMappingContext mongoMappingContext;
public @Bean MongoTemplate mongoTemplate() {
// remove _class
DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext);
converter.setTypeMapper(new DefaultMongoTypeMapper(null));
return new MongoTemplate(mongoDbFactory, converter);
}
@Bean
MongoTransactionManager txManager(MongoDatabaseFactory dbFactory) …Run Code Online (Sandbox Code Playgroud)