Mongodb 查询生成的无模型mongo版本集合

Mongodb 查询生成的无模型mongo版本集合,mongodb,mongoose,mongodb-query,Mongodb,Mongoose,Mongodb Query,我想用它来跟踪和保存mongodb中的更改 我创建了这个示例模式 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var version = require('mongoose-version'); var PageSchema = new Schema({ title : { type : String, required : true}, tags : [String], }); Page

我想用它来跟踪和保存mongodb中的更改

我创建了这个示例模式

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var version = require('mongoose-version');

var PageSchema = new Schema({
    title : { type : String, required : true},
    tags : [String],
});

PageSchema.plugin(version, { collection: 'Page__versions' });

const PageModel = mongoose.model('PageModel', PageSchema)

因此,所有版本都存储在集合
Page\uu versions
中,但我如何查询此集合,因为我没有该集合的模型。

要获取集合,可以使用从
createConnection
函数返回的mongoose数据库对象。因此,当您启动应用程序时,您会像这样存储这个变量

let db = mongoose.createConnection(url, params);
collection.find({myProperty: value});
在本例中,您可以使用此对象获取所需的集合

let collection = db.collection("Page__versions");
此时,您可以使用标准方法对该集合执行CRUD操作,例如,如果要查找该集合中具有特定属性的所有文档,可以执行以下操作

let db = mongoose.createConnection(url, params);
collection.find({myProperty: value});
这将为您提供该集合中符合条件的所有文档

如果您不知道模型,您可以从集合中获取一个项目,并查看结果

let doc = collection.findOne({}); //This will get the first document in the collection

非常感谢。你知道如何填充一些字段吗?我使用
mongoose.connection.collection('Page\u versions').findOne({refId:ObjectId(pageId)})。填充('u author')
,但我得到“[,,,]。填充不是一个函数”,我相信只有使用mongoose模型才能实现。如果你想实现同样的目标,我认为最好的办法就是使用