gpt4 book ai didi

node.js - 如何从 Node 中的 Mongo 访问 `findAndModify` 方法(使用 Mongoose)?

转载 作者:可可西里 更新时间:2023-11-01 09:11:27 27 4
gpt4 key购买 nike

这是/models/joke.js:

var mongoose    = require ('mongoose')
, database = mongoose.connect('localhost', 'joke', { server: { poolSize: 3 } });

var jokeSchema = mongoose.Schema({
content: String,
upvotes: {
type: Number,
default: 0
},
downvotes: {
type: Number,
default: 0
},
views: {
type: Number,
default: 0
},
published: {
type: Boolean,
default: true
},
author_id: Number,
created: {
type: Date,
default: Date.now
}
});

var Joke = mongoose.model('Joke', jokeSchema);

module.exports = Joke;

我这样做是为了检查是否存在某些东西——如果不存在,则创建:

var Joke = require ('./models/joke');

// ...

Joke.findAndModify({
query: {
content: content
},
update: {
$setOnInsert: {
content: "test",
}
},
new: true,
upsert: true
});

但我的控制台向我喊出以下内容:

TypeError: Object function model(doc, fields, skipId) {
if (!(this instanceof model))
return new model(doc, fields, skipId);
Model.call(this, doc, fields, skipId);
} has no method 'findAndModify'

我能理解错误的原因 – I'm calling it through a model instead of a collection ,但如何访问笑话的收集方法?

我的意思是,所有示例都使用了 db.collection.findAndModify,但是这个 db.collection 是什么?怎么调用它?

最佳答案

要从 Mongoose 访问 findAndModify 更新功能,请使用 findOneAndUpdate :

Joke.findOneAndUpdate(
{ content: content },
{ $setOnInsert: { content: "test" } },
{ new: true, upsert: true },
callback
);

关于node.js - 如何从 Node 中的 Mongo 访问 `findAndModify` 方法(使用 Mongoose)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27639963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com