我最近的项目遇到了与此问题相同的问题:问题
db.test.update(
{name:"abc123", "config.a":1 },
{$addToSet:{ config:{a:1,b:2} } },
true
)
Run Code Online (Sandbox Code Playgroud)
会产生这样的错误:
无法将$ addToSet应用于非数组字段
但改成后:
db.test.update(
{name:"abc123", "config.a":{$in:[1]} },
{$addToSet:{ config:{a:1,b:2} } },
true
)
Run Code Online (Sandbox Code Playgroud)
它工作正常.
还引用了这个链接:答案
任何人都可以解释发生了什么吗?"config.a":1会将config变为对象吗?当"config.a":{$于:[1]}不会呢?
想想这个MongoDB文档:
{_id:123, "food":[ "apple", "banana", "mango" ]}
Run Code Online (Sandbox Code Playgroud)
问题:如何获得mango食物的位置?
查询应该2在上面返回,并且不返回整个文档.
请显示工作查询.
mongodb有以下文件:
> db.test.find({name:{$in:["abc","abc2"]}})
{ "_id" : 1, "name" : "abc", "scores" : [ ] }
{ "_id" : 2, "name" : "abc2", "scores" : [ 10, 20 ] }
Run Code Online (Sandbox Code Playgroud)
我希望得到每个文档的分数长度,我该怎么办?
尝试下面的命令:
db.test.aggregate({$match:{name:"abc2"}}, {$unwind: "$scores"}, {$group: {_id:null, count:{$sum:1}}} )
Run Code Online (Sandbox Code Playgroud)
结果:
{ "_id" : null, "count" : 2 }
Run Code Online (Sandbox Code Playgroud)
但是在命令之下:
db.test.aggregate({$match:{name:"abc"}}, {$unwind: "$scores"}, {$group: {_id:null, count:{$sum:1}}} )
Run Code Online (Sandbox Code Playgroud)
什么也没有.题:
假设我有一个发布到 NPM 的库,只有一行:
// file name index.js
function myLib(x) {return x;}
Run Code Online (Sandbox Code Playgroud)
想要将它导入到app.component.ts这个 repo
https://github.com/AngularClass/angular2-webpack-starter/blob/master/src/app/app.component.ts
之后npm install myLib,并将index.d.ts文件创建node_modules/myLib/为
export default function myLib (x: any): any;
// or
// declare function myLib (x: any): any;
// export default myLib;
Run Code Online (Sandbox Code Playgroud)
以下是我的问题:
Q1.将其消耗app.component.ts为:
import myLib from 'myLib'
console.log( myLib )
Run Code Online (Sandbox Code Playgroud)
结果是undefined,为什么?
Q2.如果更改代码如下:
import * as myLib from 'myLib'
console.log( myLib )
Run Code Online (Sandbox Code Playgroud)
结果是function myLib(x) {return x;},看起来是对的,但是
console.log( myLib(123) )
Run Code Online (Sandbox Code Playgroud)
Webpack 显示错误消息: …
在 mongodb 3.4.5 中aggregate,有以下文档:
{id:1, a:['x','y','z'], b:[2,3,4]}
Run Code Online (Sandbox Code Playgroud)
并想将其更改为
{id:1, field: [{a:'x', b:2}, {a:'y', b:3}, {a:'z', b:4}]}
Run Code Online (Sandbox Code Playgroud)
aggregate阶段性怎么做?
我试图使用mongodb 3.4.5 的$arrayToObject功能,但不幸的是......