簡體   English   中英

貓鼬中的“$ in”有什么問題

[英]What's wrong with “$in” in mongoose

每個人都過得愉快 我和mongoose一起做了一個奇怪的錯誤

module.js:437
  var compiledWrapper = runInThisContext(wrapper, filename, tru
                        ^
SyntaxError: Unexpected token .
    at Module._compile (module.js:437:25)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (E:\Dropbox\Dropbox\FCP\server.js
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)

我猜它是從

dbQueries.remove({_id: {$in: {req.body.data}}, authorId: req.user._id}, function onRemoveSomething(err){
            if(err) {
                res.json({epicFail: 'ERR_RestrictedAccess'});
                return; 
            }
        });

所以,我不知道出了什么問題。

$ in采用數組,而不是格式無效的javascript對象

{_id: {$in: [req.body.data]}

或者如果req.body.data已經是一個數組,則省略wrap [ ]

你必須檢查req.body.data是不是數組,請參閱下面的代碼{_id: {$in: _.isArray(req.body.data) ? req.body.data : [req.body.data] } //const _ = require('lodash'); {_id: {$in: _.isArray(req.body.data) ? req.body.data : [req.body.data] } //const _ = require('lodash');

根據數據構建查詢

var match = {
    authorId: req.user._id
};

if(Array.isArray(data)) {
    match._id = {$in: data};
} else {
   match._id = data;
}

dbQueries.remove(match, function findMyDocs(err, foundDocs) {

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM