标签: mongoose

DeprecationWarning:Mongoose:在 Mongoose 7 中,“strictQuery”选项将默认切换回“false”

我只是从我的数据库创建一个名为 Fruits 的数据库app.js,并使用 Mongoose 将数据库连接到 MongoDB。

const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:27017/fruitsDB", {useNewUrlParser: true});

mongoose.set('strictQuery', false);

const fruitSchema = new mongoose.Schema({
    name: String,
    rating: Number,
    review: String
});

const Fruit = mongoose.model("Fruit", fruitSchema);

const fruit = new Fruit({
    name: "Apple",
    rating: 7,
    review: "Taste Good"
});

fruit.save();
Run Code Online (Sandbox Code Playgroud)

每当我尝试时node app.js,我都会收到DeprecationWarning。尽管我尝试使用mongoose.set('strictQuery', true);,但同样的错误仍然存​​在,如下所示:

(node:15848) [MONGOOSE] DeprecationWarning: Mongoose: the `strictQuery` option w
ill be switched back to `false` by default in Mongoose 7. Use `mongoose.set('str
ictQuery', false);` …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js deprecation-warning

47
推荐指数
3
解决办法
11万
查看次数

使用Mongoose进行多对多映射

我的设计中有FlashcardSchemas和PackageSchemas.一个闪存卡可以属于不同的包,一个包可以包含不同的闪存卡.

您可以在下面看到我的mongoose模式定义的精简版本:

// package-schema.js
var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var PackageSchema = new Schema({
    id          : ObjectId,
    title       : { type: String, required: true },
    flashcards  : [ FlashcardSchema ]
});

var exports = module.exports = mongoose.model('Package', PackageSchema);

// flashcard-schema.js
var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var FlashcardSchema = new Schema({
    id      : ObjectId,
    type        : { type: String, default: '' },
    story       : { type: String, default: '' },
    packages    : [ PackageSchema ]
});

var …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

46
推荐指数
2
解决办法
3万
查看次数

46
推荐指数
1
解决办法
3万
查看次数

全文搜索重量在猫鼬

据我所知,自3.8.9版以来,mongoose支持全文搜索.但我找不到一个好的文档!
我想做的事情如下:

db.collection.ensureIndex(
    // Fields to index
    {
        animal:  "text",
        color:   "text",
        pattern: "text",
        size:    "text"
    },

    // Options
    {
        name: "best_match_index",

        // Adjust field weights (default is 1)
        weights: {
            animal: 5,  // Most relevant search field
            size:   4   // Also relevant
       }
    }
)
Run Code Online (Sandbox Code Playgroud)

我可以用纯猫鼬做吗?或者我必须使用像mongoose-text-search这样的插件?没有重量怎么样?
我该怎么办呢?

full-text-search mongoose mongodb

46
推荐指数
1
解决办法
4万
查看次数

Mongoose在没有_id字段的情况下检索数据

我想从Node.js应用程序中的Mongoose设置中检索一些数据.我注意到无论我写什么作为场选择,我总是得到这个_id领域.有没有办法不去取它?这就是我现在的做法:

Transaction.find({username : user.username}, ['uniqueId', 'timeout', 'confirmation_link', 'item_name'], function(err, txs){
        console.log("user : " + user.username + " with txs: " + txs);
        callback(txs);
});
Run Code Online (Sandbox Code Playgroud)

并记录包含该_id字段的结果.

mongoose node.js

45
推荐指数
4
解决办法
4万
查看次数

什么`!!〜'在javascript中意味着什么?

可能重复:
jQuery对象之前的tilde(〜)是做什么的?

!!~在阅读时在代码中发现了一个奇怪的内容:https://github.com/LearnBoost/mongoose/blob/master/lib/document.js#L678

Document.prototype.isModified = function (path) {
  return !!~this.modifiedPaths.indexOf(path);
};
Run Code Online (Sandbox Code Playgroud)

我读过那是什么!! (不是)JavaScript中的运算符?以及如何:〜运算符?; 为什么作者!!~在这里使用?

我试过了:

!!~1  // -> true
!!~0  // -> true
!!~-1 // -> false
!!~-2 // -> true
Run Code Online (Sandbox Code Playgroud)

似乎它只是false在数字的时候-1.这样对吗?为什么不核对一下电话号码是不是-1还是>=0

javascript operators bitwise-operators mongoose comparison-operators

45
推荐指数
0
解决办法
5421
查看次数

Mongoose.js:删除集合或DB

是否可以使用mongoose.js删除集合或整个数据库?

mongoose

45
推荐指数
3
解决办法
5万
查看次数

如何使用mongoose Promise - mongo

有人可以给我一个关于如何使用猫鼬的Promise的例子.这是我所拥有的,但它没有按预期工作:

app.use(function (req, res, next) {
  res.local('myStuff', myLib.process(req.path, something));
  console.log(res.local('myStuff'));
  next();
});
Run Code Online (Sandbox Code Playgroud)

然后在myLib中,我会有这样的事情:

exports.process = function ( r, callback ) {
  var promise = new mongoose.Promise;
  if(callback) promise.addBack(callback);

  Content.find( {route : r }, function (err, docs) {
     promise.resolve.bind(promise)(err, docs);

  });

  return promise;

};
Run Code Online (Sandbox Code Playgroud)

在某些时候,我希望我的数据存在,但我如何访问它,或者获取它?

mongoose mongodb node.js promise express

44
推荐指数
4
解决办法
7万
查看次数

如何在同一语句中使用populate和aggregate?

这是我的预约系列:

{ _id: ObjectId("518ee0bc9be1909012000002"), date: ISODate("2013-05-13T22:00:00Z"), patient:ObjectId("518ee0bc9be1909012000002") }

{ _id: ObjectId("518ee0bc9be1909012000002"), date: ISODate("2013-05-13T22:00:00Z"), patient:ObjectId("518ee0bc9be1909012000002") }

{ _id: ObjectId("518ee0bc9be1909012000002"), date: ISODate("2013-05-13T22:00:00Z"), patient:ObjectId("518ee0bc9be1909012000002") }
Run Code Online (Sandbox Code Playgroud)

我使用聚合来获得以下结果

{date: ISODate("2013-05-13T22:00:00Z"),
patients:[ObjectId("518ee0bc9be1909012000002"),ObjectId("518ee0bc9be1909012000002"),ObjectId("518ee0bc9be1909012000002")] }
Run Code Online (Sandbox Code Playgroud)

像这样:

Appointments.aggregate([
{$group: {_id: '$date', patients: {$push: '$patient'}}},
{$project: {date: '$_id', patients: 1, _id: 0}}
], ...)
Run Code Online (Sandbox Code Playgroud)

我怎样才能填写患者文件,但是它不起作用Appointments.find({}).populate("patient").aggregate......

换句话说,我可以在同一个语句中使用populate和aggregate

请帮忙

mongoose mongodb node.js

44
推荐指数
7
解决办法
5万
查看次数

MongoError:尝试删除集合时找不到ns

当我尝试删除集合时,Mongoose会抛出一个错误,即" MongoError:ns not found ".

这是我的猫鼬代码:

var mongoose = require('bluebird').promisifyAll(require('mongoose'));
......
......
......   
mongoose.connection.db.dropCollection("myCollection",function(err,affect){
   console.log('err',err);

})
Run Code Online (Sandbox Code Playgroud)

错误:

错误{[MongoError:ns not found]
name:'MongoError',
message:'ns not found',
ok:0,
errmsg:'ns not found'}

mongoose mongodb node.js

44
推荐指数
3
解决办法
2万
查看次数